zoukankan      html  css  js  c++  java
  • opencv基本图像操作

    // 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;
    }
    
    


     

  • 相关阅读:
    常用的npm指令总结
    Mongoose基础
    2016总结与展望
    sleep与wait的区别
    查询平均分大于80分的学生
    求最大不重复子串
    快速排序
    按位与(&)运算的作用
    异或运算的作用
    java 字符串中的每个单词的倒序输出
  • 原文地址:https://www.cnblogs.com/wangyaning/p/4237034.html
Copyright © 2011-2022 走看看