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

C# 确定停止更改颜色的像素位置,c#,image-processing,C#,Image Processing,在给定的大脑图像中,大脑有左右两侧 我需要改变右边的颜色。要访问每个像素,我使用下面给出的代码: for (int i = 0; i < scrBitmap.Width; i++) { for (int j = 0; j < scrBitmap.Height; j++) { actualColor = scrBitmap.GetPixel(i, j); } } for(int i=0;i

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

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

for (int i = 0; i < scrBitmap.Width; i++) {
  for (int j = 0; j < scrBitmap.Height; j++) {
   actualColor = scrBitmap.GetPixel(i, j);
  }
}
for(int i=0;i
如何更改大脑一侧(左侧或右侧)的像素颜色? 我应该在什么条件下改变颜色


图片可能会在一个部分(左或右)的一小部分可见的地方发生变化。

我相当确定这是完全明显的,对你来说没什么用,但假设图片是对称的(不是对称的)或足够对称的,粗略的近似方法是只对图像中的每个像素进行迭代,然后得到大脑所在部分的边界,即

//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
//如果图像高度=ih,图像宽度=iw
//从左边迭代
int beginX=0;

对于(int x=0;xB),如果图片在只有一个部分可见的情况下更改,则此操作将不起作用