【问题标题】:Change pixels between similar pixels on image更改图像上相似像素之间的像素
【发布时间】:2014-03-21 02:25:41
【问题描述】:

我想平均两个相似像素之间的像素颜色。黑色像素之间的白色像素应该变成黑色,反之亦然。该规则必须适用于所有方向。这是应该发生的事情的完整示例:

Horizontal:
□■□ -> □□□

Vertical:
□   ->  □
■   ->  □
□   ->  □

■□■ -> ■■■


■   ->  ■
□   ->  ■
■   ->  ■


□■□  ->   □□□   ->   □□□
■■■  ->   ■■■   ->   ■□■
■□■  ->   ■□■   ->   ■□■

OpenCV 可以做到这一点吗?任何人都可以制作这样的算法吗?这是我尝试过的:

while(i<image->width){
    while(j<image->height){
        if(pixel[i,j-1] == pixel[i,j+1]){
            pixel[i,j] = pixel[i,j-1];
        }else if(pixel[i-1,j] == pixel[i+1,j]){
            pixel[i,j] = pixel[i-1,j];
        }
        j++;
    }
    i++;
}

【问题讨论】:

标签: c++ algorithm opencv


【解决方案1】:

您没有正确访问图像像素。

对于灰度图像(在您的示例中,Mat pixel),要访问其像素,您应该使用:

pixel.at<uchar>(j, i) = ...;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 2011-01-17
    • 2021-10-01
    • 1970-01-01
    • 2019-07-24
    • 2016-05-31
    • 1970-01-01
    相关资源
    最近更新 更多