opencv基本图像操作

来源:互联网 发布:网络预约出租车运输证 编辑:程序博客网 时间:2024/04/26 10:43
// Basic_OpenCV_2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include "cv.h"#include "highgui.h"using namespace std;void SmoothImage(IplImage* image)//平滑函数{cvNamedWindow("Smooth_in");cvNamedWindow("Smooth_out");cvShowImage("Smooth_in",image);IplImage* out = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);cvSmooth(image,out,CV_BLUR,32,32);//平滑函数,后面两个参数是窗口大小cvShowImage("Smooth_out",out);cvReleaseImage(&out);cvWaitKey(0);cvDestroyAllWindows();}void doPyrDown(IplImage* in, int filter = IPL_GAUSSIAN_5x5)//图像缩小为一半{//Best to make sure input image is divisible by two.assert(in->width%2 == 0 && in->height%2 == 0);IplImage* out = cvCreateImage(cvSize(in->width/2 , in->height/2) , in->depth , in->nChannels);cvPyrDown(in , out);cvNamedWindow("PyrDown_out");cvShowImage("PyrDown_out",out);cvReleaseImage(&out);cvWaitKey(0);cvDestroyAllWindows();//return out;}void doCanny(IplImage* in , double lowThresh , double highThresh , double aperture){IplImage* out = cvCreateImage(cvSize(in->width,in->height) , IPL_DEPTH_8U , 1);if(in->nChannels != 1){//cout<<"error! unsupported format or combination of formats() in unknown function"<<endl;//return;//canny only handles gray scale image//若不是灰度图,直接转化成灰度图IplImage* gray =  cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);      cvCvtColor(in, gray, CV_BGR2GRAY);out = gray;}cvCanny(in , out , lowThresh , highThresh , aperture );cvNamedWindow("Canny_out");cvShowImage("Canny_out",out);cvReleaseImage(&out);cvWaitKey(0);cvDestroyAllWindows();}int _tmain(int argc, _TCHAR* argv[]){IplImage* image = cvLoadImage("lena.jpg");//SmoothImage(image);//doPyrDown(image);doCanny(image ,10 , 100 , 3 );system("pause");return 0;}


 

原创粉丝点击