随笔分类 - 学习OpenCV练习题
摘要:a部分练习的是图像相减法,图像的减法又称减影技术,是指对同一景物在不同时间拍摄的图像或同一景物在不同波段的图像进行相减。其主要作用如下:1、去除不需要的叠加性图案;2、运动检测;3、梯度图像。这是两张在不同时刻拍摄的图像,为了充分展示出效果,我将图像中的物体移动了一下: 图 一 图 二这两幅图像相减,并取绝对值之后的结果图像: 图 三可以看出,图像相减可以去除两张图像中相同的部分,...
阅读全文
摘要:这部分基本上练习的是如何用非对称的高斯核做高斯滤波。如果用户希望采用非对称的高斯核,则引入param4,最后两个参数分别代表水平核以及垂直核维数。因此,当param3 ≠param4≠0的时候,就采用了非对称的高斯核。param1 = param2 = 0, param3 = 1, param4 = 9的滤波结果:根据上篇博文介绍的那样,实际上在这种情况中滤波核的大小为7 * 55,即平行向的核尺寸为7,竖直向的核尺寸为55,因此,结果图像在竖直方向上更模糊一些。我们可以来看下平行向上的一维高斯变换核:0.0044330.0540060.2420360.3990500.2420360.0540
阅读全文
摘要:首先看下OpenCV 官方文档对于cvSmooth各个参数的解释:Smooths the image in one of several ways.C: void cvSmooth(const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int param2=0, double param3=0, double param4=0)其对于每个参数的解释如下:param1 – The first parameter of the smoothing operation, the aperture width.
阅读全文
摘要:代码: 1 #include 2 #include 3 #include 4 #include 5 6 7 /* 8 *《学习OpenCV》第五章第二题 9 * 完成时间:21:43 10/13 星期日 2013 10 * 作者:qdsclove@163.com 11 */ 12 13 /* Image Size */ 14 #define IMG_SIZE 100 15 16 /* 17 * Window Title 18 */ 19 #define WNDTITLE_IMAGE "source image" 20 #d...
阅读全文
摘要:这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同。先说下我的做法,a部分我将每个不同的窗口大小模糊化后的图像生成后,还计算了每个模糊化后的图像与原始图像间的MSE值与PSNR值。(参见:http://zh.wikipedia.org/wiki/%E5%B3%B0%E5%80%BC%E4%BF%A1%E5%99%AA%E6%AF%94)b部分我计算了两次5*5窗口大小的高斯模糊后的图像与一次11*11窗口大小的高斯模糊图像之间的MSE与PSNR。代码: 1 #inclu.
阅读全文
摘要:这道题是利用OpenCV例子程序里自带的人脸检测程序,做点图像的复制操作以及alpha融合。说明:人脸检测的程序我参照了网上现有的例子程序,没有用我用的OpenCV版本(2.4.5)的facedetect.c,人脸检测部分是一个月前写的程序,这次做了点改动,以前的部分注释了起来。代码: 1 #include 2 #include 3 #include 4 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include ...
阅读全文
摘要:1 #include 2 #include 3 #include "opencv_libs.h" 4 5 /* 6 *《学习OpenCV》第四章第三题b 7 * 完成时间:1:36 3/31 星期日 2013 8 */ 9 10 /* 矩形框 */ 11 CvRect rect; 12 13 bool draw = false; // 标记是否在画 14 15 IplImage* img; 16 IplImage * temp; 17 IplImage * original; 18 19 bool draw_hist = false; 20 21 ...
阅读全文
摘要:1 #include 2 #include 3 #include "opencv_libs.h" 4 5 #pragma comment (lib,"opencv_calib3d231d.lib") 6 #pragma comment (lib,"opencv_contrib231d.lib") 7 #pragma comment (lib,"opencv_core231d.lib") 8 #pragma comment (lib,"opencv_features2d231d.lib") 9 #
阅读全文
摘要:1 #include 2 #include 3 4 #pragma comment (lib,"opencv_calib3d231d.lib") 5 #pragma comment (lib,"opencv_contrib231d.lib") 6 #pragma comment (lib,"opencv_core231d.lib") 7 #pragma comment (lib,"opencv_features2d231d.lib") 8 #pragma comment (lib,"opencv_flan
阅读全文
摘要:1 #include 2 #include 3 4 #pragma comment (lib,"opencv_calib3d231d.lib") 5 #pragma comment (lib,"opencv_contrib231d.lib") 6 #pragma comment (lib,"opencv_core231d.lib") 7 #pragma comment (lib,"opencv_features2d231d.lib") 8 #pragma comment (lib,"opencv_flan
阅读全文
摘要:1 #include 2 #include 3 4 #pragma comment (lib,"opencv_calib3d231d.lib") 5 #pragma comment (lib,"opencv_contrib231d.lib") 6 #pragma comment (lib,"opencv_core231d.lib") 7 #pragma comment (lib,"opencv_features2d231d.lib") 8 #pragma comment (lib,"opencv_flan
阅读全文
摘要:题外话:一直是打算把这本书的全部课后编程题写完的,中间断了几个月,一直忙于其他事。现在开始补上。这道题我不清楚我理解的题意是不是正确的,这道题可以练习用OpenCV实现透视变换(可以用于矫正在3维环境下的图像失真),b&c部分则是实现图像放大缩小插值,旋转图像。所有的功能都和键盘事件处理联系起来,纯OpenCV实现,和OS无关。不过,在处理SHIFT键时,我取得是其在键盘上对应字符的ASCII码,好像OpenCV对键盘事件的支持不如对鼠标事件的支持。所以SHIFT键+小键盘上的数字键是不行的。代码: 1 #include 2 #include 3 #include 4 5 /...
阅读全文

浙公网安备 33010602011771号