码迷,mamicode.com
首页 > 其他好文 > 详细

【练习6.6】cvLaplace团块及边缘检测

时间:2015-05-02 19:29:25      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

 

提纲
题目要求
程序代码
结果图片
要言妙道

 

 

 

  

 

题目要求:

 找到并载入一副正面人脸图,眼睛是睁开的,并且占了图像大部分区域,写代码找出眼睛的瞳孔

一个拉普拉斯算子“像”黑暗中的一个中心亮点,瞳孔正好相反,用一个足够大的拉普拉斯算子进行转换和卷积

 

程序代码:

 

 1 // OpenCVExerciseTesting.cpp : 定义控制台应用程序的入口点。
 2 //
 3 //D:\\Work\\Work_Programming\\Source\\Image\\lena.jpg
 4 
 5 
 6 #include "stdafx.h"
 7 #include <cv.h>
 8 #include <highgui.h>
 9 #include <iostream>
10 
11 #include <opencv2/legacy/legacy.hpp>
12 //#pragma comment(lib, "opencv_legacy2411.lib")
13 
14 using namespace cv;
15 using namespace std;
16 
17 //函数声明-->--->-->--->-->--->-->--->//
18 
19 
20 //<--<--<--<--<--<--<--<--<--函数声明//
21 
22 int _tmain(int argc, _TCHAR* argv[])
23 {
24     const char * soutceFile = "D:\\Work\\Work_Programming\\Source\\Image\\OpenCVExerciseImage\\第6章\\瞳孔.jpg";
25     IplImage * image_Resource = cvLoadImage(soutceFile, CV_LOAD_IMAGE_GRAYSCALE);
26     assert(image_Resource);
27 
28     CvSize image_size = cvSize(image_Resource->width, image_Resource->height);
29 
30     cvNamedWindow("原始图像", CV_WINDOW_AUTOSIZE);
31     cvNamedWindow("题目_a", CV_WINDOW_AUTOSIZE);
32 
33     cvShowImage("原始图像", image_Resource);
34 
35     //---------------------------a:--------------------------------/:
36 
37     IplImage * image_Result_a = cvCreateImage(image_size, IPL_DEPTH_64F, image_Resource->nChannels);
38     cvZero(image_Result_a);
39 
40     cvLaplace(image_Resource, image_Result_a, 21);
41 
42     cvSave("image_Result_a.xml", image_Result_a);
43 
44     IplImage * image_8U_ToShow = cvCreateImage(image_size, IPL_DEPTH_8U, image_Resource->nChannels);
45     cvConvertScaleAbs(image_Result_a, image_8U_ToShow);
46 
47     cvShowImage("题目_a", image_8U_ToShow);
48 
49     //---------------------------a:--------------------------------/。
50 
51     cvWaitKey(0);
52 
53     cvReleaseImage(&image_Resource);
54     cvReleaseImage(&image_Result_a);
55 
56     cvDestroyWindow("原始图像");
57     cvDestroyWindow("题目_a");
58 
59     return 0;
60 }

 

 

结果图片:

技术分享 技术分享

如果换一张图片,使用如下代码替换,效果图如下:

    const char * soutceFile = "D:\\Work\\Work_Programming\\Source\\Image\\OpenCVExerciseImage\\第6章\\眼睛.jpg";

///.......

    cvLaplace(image_Resource, image_Result_a, 17);
技术分享
技术分享

 

 

要言妙道:

 技术分享①拉普拉斯算子一个通常的应用是检测“团块”、边缘检测

②源图像可以是8位无符号图像,也可以是32浮点图像,但目标图像必须是16位(有符号)或32位浮点图像。

 

【练习6.6】cvLaplace团块及边缘检测

标签:

原文地址:http://www.cnblogs.com/tingshuixuan2012/p/4472335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!