Visual C++ 2012 影像處理homepage.ntu.edu.tw/~d02922022/AdvC/ppt/Part 3/VC++ MFC 05_based.pdf ·...

52
Visual C++ 2012 影像處理 NTU CSIE 張傑帆

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