Chinaunix首页 | 论坛 | 博客
  • 博客访问: 295079
  • 博文数量: 32
  • 博客积分: 665
  • 博客等级: 上士
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-25 11:20
文章分类

全部博文(32)

文章存档

2023年(1)

2021年(1)

2020年(2)

2018年(3)

2014年(1)

2013年(2)

2012年(9)

2011年(9)

2010年(2)

2009年(2)

分类: C/C++

2011-08-11 16:08:35

4. 在一个画图程序里,例如PowerPoint,画一系列同心圆形成一个靶心。
  a. 构造一系列进入靶心的直线,保存图像
  b. 用一个3*3的中孔大小,对你的图像运行并显示一阶x和y方向的导数。然后将中孔大小增加到5*5,9*9和13*13。描述结果。(我认为此处翻译欠妥当,英文原文是这样的:Using a 3-by-3 aperture size,take and display the fi rst-order x- and y-derivatives of your picture. Th en increase the aperture size to 5-by-5, 9-by-9, and 13-by-13.Describe the results.)
 
  1. int exes4()
  2. {
  3.     IplImage *img1,*img2,*img3;
  4.     cvNamedWindow("exes4_origin",CV_WINDOW_AUTOSIZE);
  5.     cvNamedWindow("exes4_dx0dy1",CV_WINDOW_AUTOSIZE);
  6.     cvNamedWindow("exes4_dx1dy0",CV_WINDOW_AUTOSIZE);
  7.     img1 = cvLoadImage("d:\\circles.png");
  8.     img2 = cvCloneImage(img1);
  9.     img3 = cvCloneImage(img1);
  10.     cvShowImage("exes4_origin",img1);
  11.     cvSobel(img1,img2,0,1,3);
  12.     //cvSobel(img1,img2,0,1,5);
  13.     cvSobel(img1,img3,1,0,3);
  14.     //cvSobel(img1,img3,1,0,5);
  15.     cvShowImage("exes4_dx0dy1",img2);
  16.     cvShowImage("exes4_dx1dy0",img3);
  17.     cvWaitKey(0);
  18.     return 0;
  19. }
 
 
以上图像是使用aperture_size=3 时的x和y方向上的一阶导结果。
 
 
 
 
以上图像是使用aperture_size=5 时的x和y方向上的一阶导结果。针对于OpenCV1.0 cvSobel()函数的aperture_size仅支持1,3,5,7。无法使用原函数进行aperture_size为9*9和13*13的求导计算。
 
在此练习中发现一个有趣的现象:在求y方向导数图像时,上半截里圈凸显,而下半截外圈凸显。同样,在求x方向导数图像时,左半截里圈凸显而右半截外圈凸显。
阅读(2614) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~