学习opencv第五章练习题
1
View Code
#include <cv.h> #include <highgui.h> int main(int argc, int argv[]) { IplImage* img = cvLoadImage("0.jpg"); IplImage* des1 = cvCreateImage(cvGetSize(img),img->depth,img->nChannels); IplImage* des2 = cvCreateImage(cvGetSize(img),img->depth,img->nChannels); IplImage* des3 = cvCreateImage(cvGetSize(img),img->depth,img->nChannels); IplImage* des4 = cvCreateImage(cvGetSize(img),img->depth,img->nChannels); cvSmooth(img,des1,CV_GAUSSIAN,3,3,0,0); cvSmooth(img,des2,CV_GAUSSIAN,5,5,0,0); cvSmooth(img,des3,CV_GAUSSIAN,9,9,0,0); cvSmooth(img,des4,CV_GAUSSIAN,11,11,0,0); cvNamedWindow("源图像"); cvNamedWindow("平滑3*3图像"); cvNamedWindow("平滑5*5图像"); cvNamedWindow("平滑9*9图像"); cvNamedWindow("平滑11*11图像"); cvShowImage("源图像",img); cvShowImage("平滑3*3图像",des1); cvShowImage("平滑5*5图像",des2); cvShowImage("平滑9*9图像",des3); cvShowImage("平滑11*11图像",des4); cvWaitKey(0); cvReleaseImage(&des1); cvReleaseImage(&des2); cvReleaseImage(&des3); cvReleaseImage(&des4); return 0; }
3
View Code
#include <cv.h> #include <highgui.h> int main(int argc, int argv[]) { IplImage* img = cvLoadImage("01.jpg"); IplImage* des1 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,img->nChannels); IplImage* des2 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,img->nChannels); IplImage* des3 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,img->nChannels); //a cvSmooth(img,des1,CV_GAUSSIAN,9,9,1); cvSmooth(img,des2,CV_GAUSSIAN,9,9,4); cvSmooth(img,des3,CV_GAUSSIAN,9,9,6); //b /* cvSmooth(img,des1,CV_GAUSSIAN,0,0,1); cvSmooth(img,des2,CV_GAUSSIAN,0,0,4); cvSmooth(img,des3,CV_GAUSSIAN,0,0,6); */ //c /* cvSmooth(img,des1,CV_GAUSSIAN,0,0,1,9); */ //d /* cvSmooth(img,des3,CV_GAUSSIAN,0,0,9,1); */ //e /* cvSmooth(img,des1,CV_GAUSSIAN,0,0,1,9); cvSmooth(des1,des2,CV_GAUSSIAN,0,0,9,1); */ //f /* cvSmooth(img,des1,CV_GAUSSIAN,0,0,9,9); cvSmooth(des1,des2,CV_GAUSSIAN,0,0,0,0); */ cvNamedWindow("src"); cvNamedWindow("9*9*1"); cvNamedWindow("9*9*4"); cvNamedWindow("9*9*6"); cvShowImage("src",img); cvShowImage("9*9*1",des1); cvShowImage("9*9*4",des2); cvShowImage("9*9*6",des3); cvReleaseImage(&des1); cvReleaseImage(&des2); cvReleaseImage(&des3); cvWaitKey(0); return 0; }
4
View Code
#include <cv.h> #include <highgui.h> int main(int argc, int argv[]) { IplImage* img1 = cvLoadImage("test1.jpg"); IplImage* img2 = cvLoadImage("test2.jpg"); IplImage* diff12 = cvCreateImage(cvGetSize(img1),img1->depth,img1->nChannels); IplImage* cleandiff = cvCreateImage(cvGetSize(img1),img1->depth,img1->nChannels); IplImage* cleandiff1 = cvCreateImage(cvGetSize(img1),img1->depth,img1->nChannels); IplImage* dirdiff = cvCreateImage(cvGetSize(img1),img1->depth,img1->nChannels); IplImage* dirdiff1 = cvCreateImage(cvGetSize(img1),img1->depth,img1->nChannels); cvNamedWindow("diff12"); cvNamedWindow("cleandiff"); cvNamedWindow("dirdiff"); cvAbsDiff(img1,img2,diff12); cvShowImage("diff12",diff12); cvErode(diff12,cleandiff); cvDilate(cleandiff,cleandiff1); cvShowImage("cleandiff",cleandiff1); cvErode(diff12,dirdiff); cvDilate(dirdiff,dirdiff1); cvShowImage("dirdiff",dirdiff1); cvReleaseImage(&diff12); cvWaitKey(0); return 0; }
10
View Code
//a #include <cv.h> #include <highgui.h> float scale = 0.5; int main(int argc, int argv[]) { IplImage* img = cvLoadImage("01.jpg"); IplImage* des1 = cvCreateImage(cvSize(img->height*scale,img->width*scale),img->depth,img->nChannels); IplImage* des2 = cvCreateImage(cvSize(des1->height*scale,des1->width*scale),img->depth,img->nChannels); cvResize(img,des1); cvResize(des1,des2); cvShowImage("img",img); cvShowImage("des1",des1); cvShowImage("des2",des2); cvWaitKey(0); return 0; } //b #include <cv.h> #include <highgui.h> float scale = 0.5; IplImage* doPyrDown( IplImage* src ) { IplImage* result = cvCreateImage( cvSize( src -> width/2, src -> height/2 ), src -> depth, src -> nChannels ); //库函数调用cvPyrDown cvPyrDown( src, result, CV_GAUSSIAN_5x5 ); //高斯变换 return result; } int main(int argc, int argv[]) { IplImage* img = cvLoadImage("01.jpg"); IplImage* des1 = 0; IplImage* des2 = 0; des1 = doPyrDown(img); des2 = doPyrDown(des1); cvShowImage("img",img); cvShowImage("des1",des1); cvShowImage("des2",des2); cvWaitKey(0); return 0; }
11
View Code
#include <cv.h> #include <highgui.h> #include <stdio.h> void docvPyrSegmentation(IplImage* src,IplImage* dst) { assert(src->width%2==0&&src->height%2==0); CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* comp = NULL; int level = 3; double threshold1 = 150; double threshold2 = 30; cvPyrSegmentation(src,dst,storage,&comp,level,threshold1,threshold2); } int main(int argc, int argv[]) { IplImage* img = cvLoadImage("01.jpg"); IplImage* dst = cvCreateImage(cvGetSize(img),img->depth,img->nChannels); docvPyrSegmentation(img,dst); cvShowImage("img",img); cvShowImage("des",dst); cvWaitKey(0); return 0; }
posted on 2013-03-02 14:59 NewPanderKing 阅读(201) 评论(0) 收藏 举报

浙公网安备 33010602011771号