Visual C++ 2012 影像處理homepage.ntu.edu.tw/~d02922022/AdvC/ppt/Part 3/VC++ MFC 05_based.pdf ·...
Transcript of Visual C++ 2012 影像處理homepage.ntu.edu.tw/~d02922022/AdvC/ppt/Part 3/VC++ MFC 05_based.pdf ·...
Visual C++ 2012
NTU CSIE
Contents
Visual C++ MFC
stdafx.h
MFC
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
Visual C++ MFC
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
MFC
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
stdafx.h
.hinclude
include
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
MFC
VC++ MFC
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
VC++ MFC
CBitmapCDibImage CimageCimage
CImage ATL MFC
CImage
.jpg .bmp .gif .png
VS.NET
Include CImageatlimage.hCImage
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
VC++ MFC
CImageDIB()
1. AlphaBlend
2. PlgBlt
3. TransparentBltSetTransparentColor
4. MaskBlt
5.MSDN
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377http://msdn.microsoft.com/zh-tw/library/5eb252d0(VS.80).aspx
.cpp.h
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
Image.h/.cpp
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
stdafx.h
#include
#include "Image.h"
#include
#include
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
***View.h
private:
CImage OrgImg;
CImage DispImg;
CImage AnsImg;
CImage Y;
CImage U;
CImage V;
bool m_bShowImage;//
bool SetState;//
CString CTitle;//Title
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
m_bShowImage = false;
SetState = false;
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
OnDraw
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
ON_FILE_OPEN COMMAND
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
ON_FILE_OPEN COMMAND
if ( LoadImg(&OrgImg, &CTitle) ) {
ImageCopy(&DispImg, &OrgImg);
m_bShowImage = true;
SetState = true;
Invalidate();
} else
return;
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
ON_FILE_SAVE COMMAND
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
ON_FILE_SAVE COMMAND
SaveImg(&DispImg);
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
int h = DispImg.GetHeight();
int w = DispImg.GetWidth();
COLORREF color;
BYTE r, g, b, gray;
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
color = DispImg.GetPixel(j, i);
r=GetRValue(color);
g=GetGValue(color);
b=GetBValue(color);
gray = r*0.299 + g*0.587 + b*0.114;
//DispImg.SetPixel( j, i, RGB(r, g, b) );
DispImg.SetPixel( j, i, RGB(gray, gray, gray) );
}
}
Invalidate();
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
CImageGetPixel(x, y)
SetPixel(x, y)
Stack Over Flow
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
CImage
CImageGetPixel(x, y)SetPixel(x, y)
BYTE** Create2DList(CImage *pImg)
{
int i;
BYTE **list;
list=(BYTE**)malloc(pImg->GetHeight*sizeof(BYTE*));
for (i=0;iGetHeight;i++)
list[i]=(BYTE*) pImg->GetPixelAddress(0,i);
return(list);
}
void Release2DList(BYTE** list)
{
free(list);
}
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
CImage
Cimage DispImg;
BYTE **aout;
aout=(BYTE**) Create2DList(&DispImg);
aout[x][y] = ;
;//
Release2DList(aout);//
DispImg.Destory();//
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
#include
for #pragma omp parallel for
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
OpenMP
OpenMP
0,1,1,2,3,5,8,13,21,34
0,1,1,2,3,5,-1823049,-1878930,-4,-1717986912
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
Stack Over Flow
VC++localOver FlowCompiler
Sol 1:globalconst
Sol 2:dynamic array
bool prime[20000000]; // bool* prime = new bool[20000000]; //
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
-:
* = new []; //
// (*)[2] = new [
1] [2];
(*)[2] [3]= new [1][2] [3];
:
int *p3 = new int[10];
double (*p4)[4] = new double[3][4];
double (*p5)[4][5] = new double[3][4][5];
delete ary; ary = NULL;
delete
deletepointerNULL
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
()
for
C++
#include
char *p = new char[100];
std::fill(p, p+100, '\0'); // zero all characters
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
int *his = new int[w]; memset(his , 0, w*sizeof(int) );
double **TDB_num = new double*[h];
for(int i=0; i
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
diadlog
#include Dialog.h
Ex:#include Dialog1.h
error C2065: IDD_DIALOG1 : Dialog1.h#include "resource.h"
Dialog1 dlg1;
dlg1.input = ZoomT;
dlg1.Text1 = "Please input Zooming times for Height";
if (dlg1.DoModal() == IDOK) {
ZoomT = dlg1.input;
zh = h*ZoomT;
}
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
RGB & YUV
YUVtrue-colorcolor space
YLuminanceLuma
UChrominance
V Chroma
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
RGB & YUV
YUVRGB
YUVRGB
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
RGB & YUV
#define CLIP(X) ( (X) > 255 ? 255 : (X) < 0 ? 0 : X)
// RGB -> YUV
#define RGB2Y(R, G, B) CLIP(( ( 66 * (R) + 129 * (G) + 25 * (B) + 128) >> 8) + 16)
#define RGB2U(R, G, B) CLIP(( ( -38 * (R) - 74 * (G) + 112 * (B) + 128) >> 8) + 128)
#define RGB2V(R, G, B) CLIP(( ( 112 * (R) - 94 * (G) - 18 * (B) + 128) >> 8) + 128)
// YUV -> RGB
#define C(Y) ( (Y) - 16 )
#define D(U) ( (U) - 128 )
#define E(V) ( (V) - 128 )
#define YUV2R(Y, U, V) CLIP(( 298 * C(Y) + 409 * E(V) + 128) >> 8)
#define YUV2G(Y, U, V) CLIP(( 298 * C(Y) - 100 * D(U) - 208 * E(V) + 128) >> 8)
#define YUV2B(Y, U, V) CLIP(( 298 * C(Y) + 516 * D(U) + 128) >> 8)
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
MessageBox
CString fmt;
fmt = "SNR of image = " + ;
::AfxMessageBox(fmt);
CString error("These image are not same type");::AfxMessageBox(error);
::AfxMessageBox(_T("The result threshold T") );
CString fmt;
fmt.Format(_T("Heigh = %d \nWidth = %d \nBytesPerPixel = %d "), P.nHeight,
P.nWidth, P.nBytesPerPixel);
::AfxMessageBox(fmt);
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377
THANKS FOR YOUR ATTENTION!
http://www.google.com.tw/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=6Nu1K3N4JdoKUM&tbnid=z1o4YHcnzJJNjM:&ved=0CAUQjRw&url=http://www.ntu.edu.tw/about/emblem.htm&ei=DprGU_FHzvbxBcuYgZgH&psig=AFQjCNGNujMp8Ypbd-KrtuRQgzmivg5l4g&ust=1405610887192377