我想在两个相似像素之间平均像素颜色。黑色像素之间的白色像素应变为黑色,反之亦然。此规则必须适用于所有方向。这是应该发生的事情的完整示例:
Horizontal:
□■□ -> □□□
Vertical:
□ -> □
■ -> □
□ -> □
■□■ -> ■■■
■ -> ■
□ -> ■
■ -> ■
□■□ -> □□□ -> □□□
■■■ -> ■■■ -> ■□■
■□■ -> ■□■ -> ■□■
OpenCV可以这样做吗?任何人都可以这样做algorighm吗?这就是我试过的:
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++;
}
答案 0 :(得分:0)
您没有正确访问图像像素。
对于灰度图像(在您的示例中为Mat pixel
),要访问其像素,您应该使用:
pixel.at<uchar>(j, i) = ...;