pyrDown()
pyDown是下采样:从当前的图片中进行采样,得到缩小一半的图片
具体方法:
1,进行高斯模糊 使用内核:
image2,对被采样图片的偶数行和列作为选定值构建新的缩小一半的图片
解释一下为什么要这样做
如果直接进行第二步,会使得图像颜色,亮度梯度值大的地方失真等,所以要先进行高斯模糊
函数
void pyrDown(InputArray src, OutputArray dst, const Size& dstsize=Size());
三个参数分别为 进出图像,第三个参数指定大小,但是这个参数需要具体说明一下
它是有默认值的,如果我们调用函数的时候不指定第三个参数,那么这个值是按照 Size((src.cols+1)/2, (src.rows+1)/2) 计算的。而且不管你自己如何指定这个参数,一定必须保证满足以下关系式:
|dstsize.width * 2 - src.cols| ≤ 2;
|dstsize.height * 2 - src.rows| ≤ 2;
这就显而易见了,无论怎么指定也生成图片只是多一行少一行的问题
pryUp()
可以理解为pyrDown()的逆过程
先放大一半,再进行高斯模糊,理由也很简单,放大号就会显示出图片的缺陷,需要模糊一下
函数
void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size());
同样的第三个参数需满足
|dstsize.width - src.cols * 2| ≤ (dstsize.width mod 2); //如果width是偶数,那么必须dstsize.width是src.cols的2倍;
|dstsize.height - src.rows * 2| ≤ (dstsize.height mod 2);
其实也有第四个参数,是指的是边界类型,我们不需要去管它
这两个函数讨论结束
网友评论