美文网首页OpenCv
opencv函数:pyrDown() 与 pryUp()

opencv函数:pyrDown() 与 pryUp()

作者: 青吟乐 | 来源:发表于2019-07-24 21:42 被阅读3次

pyrDown()

pyDown是下采样:从当前的图片中进行采样,得到缩小一半的图片
具体方法:

1,进行高斯模糊 使用内核:

image

2,对被采样图片的偶数行和列作为选定值构建新的缩小一半的图片

解释一下为什么要这样做

如果直接进行第二步,会使得图像颜色,亮度梯度值大的地方失真等,所以要先进行高斯模糊
函数

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);
其实也有第四个参数,是指的是边界类型,我们不需要去管它
这两个函数讨论结束

相关文章

网友评论

    本文标题:opencv函数:pyrDown() 与 pryUp()

    本文链接:https://www.haomeiwen.com/subject/chxqrctx.html