// 5_5.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <cv.h>
#include <cvcam.h>
#include <cxcore.h>
#include <highgui.h>
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cvcam.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
int main(int argc, char* argv[])
{
//载入程序所需图像
IplImage *pSourceImageWithGlass = NULL;
IplImage *pSourceImageWithoutGlass = NULL;
pSourceImageWithGlass = cvLoadImage(argv[1],CV_LOAD_IMAGE_GRAYSCALE);
assert(pSourceImageWithGlass != NULL);
pSourceImageWithoutGlass = cvLoadImage(argv[2],CV_LOAD_IMAGE_GRAYSCALE);
assert(pSourceImageWithoutGlass != NULL);
/*************************** a *********************/
IplImage *pResultImage = cvCreateImage(cvGetSize(pSourceImageWithGlass),pSourceImageWithGlass->depth,1);
assert(pResultImage != NULL);
cvAbsDiff(pSourceImageWithGlass,pSourceImageWithoutGlass,pResultImage);
cvNamedWindow("Show_Result_A");
cvShowImage("Show_Result_A",pResultImage);
/*************************** b **********************/
cvThreshold(pResultImage,pResultImage,40,255,CV_THRESH_BINARY);
cvNamedWindow("Show_Result_B");
cvShowImage("Show_Result_B",pResultImage);
/*************************** c **********************/
cvMorphologyEx(
pResultImage,
pResultImage,
NULL,
NULL,
CV_MOP_OPEN,
1
);
cvNamedWindow("Show_Result_C");
cvShowImage("Show_Result_C",pResultImage);
cvWaitKey();
//释放资源
cvDestroyAllWindows();
cvReleaseImage(&pSourceImageWithGlass);
cvReleaseImage(&pSourceImageWithoutGlass);
cvReleaseImage(&pResultImage);
return 0;
}
运行结果 :