标签:
书看到这里,更有一种感觉,就是此书作为入门手册,有一定的难度。难点不在此书如《C++ Primer》中文译本中充满歧义的佶屈聱牙的语句,而在各种术语(图像处理,信号处理以及数学)方面的提前使用。因此本章书中提及的“阈值化”、“卷积”(抱歉,数学上卷积可能有听到,但是图形学上的卷积只能抱歉了)等总会让新手感觉难以体会书中描述文字的“感觉”。好在在本章的最后提及了“阈值化”,在下一张的开始部分,也有“卷积”的一部分涉及。因此此书更应当“熟读百遍”。
我们在这里提及一下阈(yu,四声)值化的概念。其实,根据阈值化的读音和字面意思,大致也能猜出这个词的意思。当我读到“阈值化”这三个字刚出现时,百度过几篇博客,上面提及的概念和一个重要的图总算在本章最后出现了。
阈值化:剔除一些低于或高于一定值的像素。这是书中对于这个的概念。首先,我们应当想到电信号转换时的数模转换与之具有强烈相关性。
书中给了这个图,我们可以看出来最上面的是将要被阈值化的值和阈值,其中阈值是虚线位置。2图是二值阈值化,即类似二进制的阈值化,和数模转换很相似。高平的值化为高值,低平为低值。3图是二图的逆置;4图为截断阈值化,即超出阈值部分截成阈值大小,其余部分保持不变;5图为超过阈值部分置低值,6图与5图相反。
我们先说一下平滑处理,“平滑处理”也叫“模糊处理”,用来减少图像上的噪声或者失真。OpenCV提供五种不同的平滑操作方法,都由cvSmooth函数实现。
void cvSmooth(const CvArr *src,CvArr*dst,int smoothtype=CV_GAUSSIAN,int param1=3,int param2=0,double param3=0,double param4=0);
src,dst自不用说,param1-4这四个参数的含义取决于smoothtype的值。
这里smoothtype有如下值:
CV_BLUR 简单模糊 支持in place方式输入,Nc1,3 输入数据类型 8u,32f, 输出数据类型 8u,32f,对每个像素param1*param2邻域求和。并做缩放1/(param1*pararam2)
CV_BLUR_NO_SCALE 简单无缩放变换的模糊,不支持in place,Nc 1, 输入数据类型 8u 输出数据类型 16s或32f 对每个像素的param1*param2 邻域求和
CV_MEDIAN 中值模糊,不支持in place,NC1,3 输入数据类型 8u,输出数据类型 8u 对图像进行核大小为param1*param1的中值滤波
CV_GAUSSIAN 高斯模糊 支持 in place ,NC1,3 输入数据类型 8u,32f,输出数据类型8u或32f 对图像进行核大小为param1*param2的高斯卷积
CV_BILATERAL 双边滤波 不支持 in place ,NC1,3 输入数据类型 8u, 输出数据类型8u 应用双线性3*3滤波,颜色sigma=param1,空间sigma=param2
CV_BLUR 输出图像的每一个像素是窗口中输入图像对应像素的简单平均值。simple blur 支持1~4个图像通道。CV_BLUR_NO_SCALE与simple blur本质上是相同的,但并没有计算其平均值的操作。因此,输入图像和结果图像必须有不同的数值精度,才能保证模糊操作不会导致错误溢出。中值滤波器将中心像素的正方形邻域内的每个像素值用中间像素值(不是平均像素值)替换,它可以用来处理单个通道、三个通道或者四个通道8位的图像,但是不支持in place。高斯滤波不是最快的,但是是最有用的。高斯滤波用卷积核与输入图像的每个点进行卷积,将最终计算结果之和作为输出图像的像素值。
此处提及“卷积”,定义是。
在我们看来,上面的图片的含义在积分观点上等价于。
标签:
原文地址:http://www.cnblogs.com/dmq5488287/p/4271399.html