下采样没有平滑

时间:2012-05-03 13:00:42

标签: opencv

是否有内置的方法可以在没有事先高斯平滑(由pyrDown C ++函数执行)的情况下对OpenCV 2.3.1中的图像进行下采样。<​​/ p>

感谢。

3 个答案:

答案 0 :(得分:5)

也许您正在寻找resize()

#Python code:
pct = 0.2
newsize = (int(large_img.shape[0] * pct), int(large_img.shape[1] * pct))
small_img = cv2.resize(large_img, newsize)

答案 1 :(得分:1)

resize(),插值= INTER_NEAREST。

修改

嗯,如果你自己编写这个函数怎么办?

double factor;
int newcols = round(mat.cols*factor);
int newrows = round(mat.rows*factor);

Mat newmat = Mat(newcol, newrows, mat.type());

for (int i=0;i<mat.cols;i++){
    for (int j=0;j<mat.cols;j++){
        newmat_<yourtype> (round(i*factor), round(j*factor)) = mat_<yourtype>(i, j);
    }
}

我没有检查代码是否有效(很可能不是),但你明白了。

答案 2 :(得分:-3)

你可以使用Image Pyramids:pyrDown,opencv文件的链接是 http://docs.opencv.org/2.4/doc/tutorials/imgproc/pyramids/pyramids.html