執行 下列程式
請問 這程式的目的為何 ??? 有哪些 你看不懂的
-------------------------------------------
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
int main( int argc, char** argv )
{
//聲明IplImage指針
IplImage* pImg = NULL;
IplImage* pImg2 = NULL;
IplImage* gray = NULL;
IplImage* bw = NULL;
IplImage* pCannyImg = NULL;
//載入圖像,強制轉化為Gray
pImg=cvLoadImage("fruits.jpg");
//為圖像申請空間
pImg2 = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 3);
gray = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
bw = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
pCannyImg = cvCreateImage(cvGetSize(pImg),
IPL_DEPTH_8U,
1);
//cvCvtColor彩色轉灰階
cvCvtColor(pImg, gray, CV_BGR2GRAY);
//cvThreshold灰階轉黑白
cvThreshold( gray, bw, 63, 255, CV_THRESH_BINARY );
cvThreshold( pImg, pImg2, 127, 255, CV_THRESH_BINARY );
//canny邊緣檢測
cvCanny(gray, pCannyImg, 50, 150, 3);
//創建視窗
cvNamedWindow("src", 1);
cvNamedWindow("src2",1);
cvNamedWindow("blackwhite", 1);
cvNamedWindow("gray",1);
cvNamedWindow("canny",1);
//顯示圖像
cvShowImage( "src", pImg );
cvShowImage( "src2", pImg2 );
cvShowImage( "gray", gray );
cvShowImage( "blackwhite", bw );
cvShowImage( "canny", pCannyImg );
cvWaitKey(0); //等待按鍵
//銷毀視窗
cvDestroyWindow( "src" );
cvDestroyWindow( "src2" );
cvDestroyWindow( "canny" );
cvDestroyWindow( "blackwhite" );
cvDestroyWindow( "gray" );
//釋放圖像
cvReleaseImage( &pImg );
cvReleaseImage( &pImg2 );
cvReleaseImage( &gray);
cvReleaseImage( &bw );
cvReleaseImage( &pCannyImg );
}
老師解說後 就比較懂了
回覆刪除只是對於CV_THRESH_BINARY 還是不知那到底是啥= =
CV_THRESH_BINARY 是用來設定是要以怎樣的方式來呈現經過Threshold後的處理
回覆刪除CV_THRESH_BINARY:
dst(x,y) = max_value, if src(x,y)>threshold
0, otherwise
CV_THRESH_BINARY_INV:
dst(x,y) = 0, if src(x,y)>threshold
max_value, otherwise
CV_THRESH_TRUNC:
dst(x,y) = threshold, if src(x,y)>threshold
src(x,y), otherwise
CV_THRESH_TOZERO:
dst(x,y) = src(x,y), if src(x,y)>threshold
0, otherwise
CV_THRESH_TOZERO_INV:
dst(x,y) = 0, if src(x,y)>threshold
src(x,y), otherwise