《学习OpenCV》练习5-4
2014-02-15 18:59
316 查看
#include "cv.h" #include "highgui.h" #include "stdio.h" //***************************************************** //主函数 //***************************************************** int main() { /*载入源图像*/ IplImage* src1 = cvLoadImage( "homework_1.jpg" ); IplImage* src2 = cvLoadImage( "homework_2.jpg" ); /*判断是否出错*/ if (!src1 || !src2) { if (!src1) printf( "failed to load %d.\n", "homework_1.jpg" ); if (!src2) printf( "failed to load %d.\n", "homework_2.jpg" ); return -1; } /*创建图像空间*/ IplImage* differ12 = cvCreateImage( cvGetSize(src1), IPL_DEPTH_8U, 3 ); IplImage* cleandiff = cvCreateImage( cvGetSize(src1), IPL_DEPTH_8U, 3 ); IplImage* dirtydiff = cvCreateImage( cvGetSize(src1), IPL_DEPTH_8U, 3 ); /*创建并命名窗口*/ cvNamedWindow( "differ12", CV_WINDOW_NORMAL ); cvNamedWindow( "cleandiff", CV_WINDOW_NORMAL ); cvNamedWindow( "dirtydiff", CV_WINDOW_NORMAL ); /*图像处理*/ cvAbsDiff( src1, src2, differ12 ); //differ12 = |src1 - src2| cvErode( differ12, cleandiff ); cvDilate( cleandiff, cleandiff ); //对differ12先进行腐蚀,然后进行膨胀操作(开运算),赋给cleandiff cvDilate( differ12, dirtydiff ); cvErode( dirtydiff, dirtydiff ); //对differ12先进行膨胀,然后进行腐蚀操作(闭运算),赋给dirtydiff /*显示图像*/ cvShowImage( "differ12", differ12 ); cvShowImage( "cleandiff", cleandiff ); cvShowImage( "dirtydiff", dirtydiff ); /*释放内存与销毁窗口*/ cvWaitKey(0); cvReleaseImage( &differ12 ); cvReleaseImage( &cleandiff ); cvReleaseImage( &dirtydiff ); cvDestroyAllWindows(); return 0; }
相关文章推荐
- 《学习OpenCV》练习4-2
- 《学习OpenCV(中文版)》第4章 练习3a
- 《学习OpenCV》练习4-3
- 《学习OpenCV(中文版)》第4章 练习3b
- 《学习OpenCV》练习4-4
- 《学习OpenCV (中文版)》第2章 练习3和练习4
- 《学习OpenCV(中文版)》第4章 练习4
- 基于QT5的opencv学习之《学习opencv课后练习3-7》
- 《学习OpenCV》练习5-1
- 《学习OpenCV(中文版)》第4章 练习5a
- 《学习OpenCV》练习5-2
- 《学习OpenCV》练习5-5
- 《学习OpenCV》第四章练习答案1-b,1-c,2-a
- 《学习OpenCV》练习5-11
- 《学习OpenCV(中文版)》第4章 练习2
- 《学习OpenCV》例2-3课后练习(page24)
- 《学习OpenCV》练习6-2
- 《学习OpenCV》练习2-5
- 《学习OpenCV》练习6-5
- 《学习OpenCV》练习3-2