Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376467
  • 博文数量: 214
  • 博客积分: 770
  • 博客等级: 军士长
  • 技术积分: 1969
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 01:22
文章分类

全部博文(214)

文章存档

2013年(110)

2012年(104)

我的朋友

分类: C/C++

2013-01-01 15:00:10

转载请说明出处:liwenjin.blog.chinaunix.net

元旦之日,无聊在宿舍参照着帮助文档和网友的资料,完成了第一个OpenCV程序,看到运行起来的效果,让我回想起来了MATLAB处理数字图像的场景,之前没在这方面认真学习,希望借助OpenCV来重新温习下。附上代码记录下。

点击(此处)折叠或打开

  1. // OpenCV_1.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <opencv2/opencv.hpp>
  5. #include <stdio.h>
  6. using namespace cv;
  7. Mat src,dst;
  8. int morph_elem=0;
  9. int morph_size=0;
  10. int morph_operator=0;
  11. int const max_operator =4;
  12. int const max_elem =2;
  13. int const max_kernel_size =21;
  14. char *window_name ="Morphology Transformations Demo";//字符串变量,作为程序名称

  15. void Morphology_Operations(int ,void *);


  16. int _tmain(int argc, _TCHAR* argv[])
  17. {
  18.  src = imread(argv[1],CV_LOAD_IMAGE_COLOR/*CV_LOAD_IMAGE_UNCHANGED*/);//读取参数1,即图片资源
  19.  if(!src.data)
  20.  {
  21.   return -1;
  22.  }
  23.  namedWindow(window_name,CV_WINDOW_AUTOSIZE);//创建窗口
  24. //创建Trackbar来选择Morphology 操作
  25.  createTrackbar("Opeartor:\n 0: Opening -1: Closeing \n 2: Gradient -3: Top Hat \n 4:Black Hat",window_name,&morph_operator,max_operator,Morphology_Operations);
  26. //创建Trackbar来选择kernel类型
  27.  createTrackbar("Element:\n 0:Rect -1:Cross -2 :Ellipse",window_name,&morph_elem,max_elem,Morphology_Operations);
  28. //创建Trackbar来选择kernel大小
  29.  createTrackbar("Kernel size:\n 2n +1",window_name,&morph_size,max_kernel_size,Morphology_Operations);
  30. //默认开始
  31.  Morphology_Operations(0,0);
  32.  waitKey(0);


  33.  return 0;
  34. }

  35. void Morphology_Operations(int ,void *)
  36. {
  37.  int operation =morph_operator+2;
  38.  Mat element =getStructuringElement(morph_elem,Size(2*morph_size+1,2*morph_size+1),Point(morph_size,morph_size));
  39.  morphologyEx(src,dst,operation,element);
  40.  imshow(window_name,dst);
  41. }

效果:


 

阅读(649) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~