2016-11-26 3 views
0

すべてのピクセルの赤色成分を削除するのではなく、主に赤色であるピクセルのみを変更します。 (私はPython 3.5を使用しています)何が私のコードで間違っている可能性があります。すべてのピクセルの赤色成分を削除するのではなく、主に赤色のピクセルのみを変更する

from cImage import * 
def removeRed(imageFile): 
    myimagewindow = ImageWin("Image Processing",1000,500) 
    oldimage = FileImage(imageFile) 
    oldimage.draw(myimagewindow) 

    width = oldimage.getWidth() 
    height = oldimage.getHeight() 
    newim = EmptyImage(width,height)  

    for col in range(width): 
     for row in range(height): 
      old_pixel = oldimage.getPixel(col,row) 
      new_pixel = Pixel(0, old_pixel.getGreen(), old_pixel.getBlue()) 
      newim.setPixel(col, row, new_pixel) 
    newim.setPosition(width+1,0) 
    newim.draw(myimagewindow) 
    myimagewindow.exitOnClick() 
removeRed("red.gif") 
+0

何が問題ですか? –

+0

すべてのピクセルの赤色成分を削除するのではなく、主に赤色のピクセルのみを変更したいと考えています。 –

+0

赤いピクセルを何に置き換えますか? –

答えて

0

もしにより「優勢」を定義する場合、「R、Gの最高値、BがRである」次いで単に赤、緑及び青の両方よりも高い場合にのみ値を比較し、0に設定さ:

for col in range(width): 
    for row in range(height): 
     old_pixel = oldimage.getPixel(col,row) 
     if old_pixel.getRed() > old_pixel.getGreen() and old_pixel.getRed() > old_pixel.getBlue(): 
      new_pixel = Pixel(0, old_pixel.getGreen(), old_pixel.getBlue()) 
      newim.setPixel(col, row, new_pixel) 
     else: 
      newim.setPixel(col, row, old_pixel) 
+0

たとえば、私は白い背景のバラの花の写真を持っています。この場合、私はバラの花から赤の色を取り除きたいのですが、絵の中のどの色にも変更を加えることはありません。要するに、私は赤い色が消えたかった。 –

+0

画像の一部が赤で表示されているという意味で、その部分だけを取り除きたいのですが、画像の背景が白で、白のビットが少しあるので背景がシアン。短く、特定のピクセルから赤の色を削除したいのですが、ピクセル全体から赤の色を削除するよりです –

+0

答えをテストしましたか? –

関連する問題