确定像素的位置以停止更改颜色

时间:2016-04-20 11:25:14

标签: c# image-processing

Picture of a brain

在给定的大脑图像中,大脑的左右两侧都有。

我需要改变右侧的颜色。要访问每个像素,我使用下面给出的代码:

for (int i = 0; i < scrBitmap.Width; i++) {
  for (int j = 0; j < scrBitmap.Height; j++) {
   actualColor = scrBitmap.GetPixel(i, j);
  }
}

如何更改大脑一侧(左侧或右侧)的像素颜色? 应该改变颜色的条件是什么?

图片也可能会改变,其中一部分(左或右)的小部分可见。

1 个答案:

答案 0 :(得分:1)

我相当肯定这是完全明显的,对你来说是无用的,但假设图片是对称的(不是)或足够对称,一个草率的近似就是迭代图像中的每个像素并得到部分的边界它有大脑,即

//if image height = ih and image width = iw

//iterate from the left
int beginX=0;
for(int x=0;x<iw;x++){
    for(int y=0;y<ih;y++){
        if(image.getPixelColor!=black){
            beginX=x;
        }
    }
}



//iterate from the right
int endX=0;
for(int x=iw;x<1;x--){
    for(int y=0;y<ih;y++){
        if(image.getPixelColor!=black){
            endX=x;
        }
    }
}

int midPointX=(endX+beginX)/2

所以你的情况就是:

表示左侧部分 - &gt;如果x在范围内(beginX,midPointX)

表示正确的部分 - &gt;如果x在范围内(midPointX,endX)