2017-11-20 4 views
1

私は画像のすべての緑のピクセルを白に変換するプログラムをテストしていました。
I have chosen this sample image:はcv2の色の変化につきました

これは私のpythonプログラムです。

import cv2 
import numpy as np 

img=cv2.imread('exp.jpg',cv2.IMREAD_COLOR) 
row,cols,layer=img.shape 


for i in range (row): 
    for j in range (cols): 
    a=img[i,j] 
    if(a[1]>128): 
     img[i, j] = [255, 255, 255] 
cv2.imshow('a',img) 


cv2.waitKey(0) 
cv2.destroyAllWindows() 

プログラムはかなり機能しますが、目的の画像の一部も失われます。
This is the output image

私はwrong.Iも

print(img[432,144]) 

することにより、そのピクセルにおけるBGRの値をチェックしに行ったのか分からいけないし、それが出力されたのです[37 209 37] .Iは、その実際の色とは思いませんその色を見るためにrgbtohex.netで使用したときと同じようにはありませんでした。 それがどこで間違っていたのか分かりません。もし何かが間違っていたら私を容赦してください。

答えて

1

あなたのifステートメントは、それらの画像でうまく機能するように考え直す必要があります。不要なピクセルは含めないでください。 exemaple [0 255 255]はシアンですが、それにはa[1] = 255if 255 > 128も含まれていますので、if(a[1]>128):となります。

今、私たちは例のソリューションはif(a[1] > 200 and a[0] < 128 and a[2] < 128)だろう、我々はGが高く評価されるし、RまたはB低いが大切たいことを知っています。

もちろん私の例では、ここであなたには、いくつかの画像処理ツールを使用したい理由first.Youはそれについての詳細を学ぶことが、切り抜いた画像の上ご次にimage procesing

+0

をさらに悪化働くかもしれ回答の人のためにどうもありがとうございますチャームのように働いた。 – TechieBoy101

関連する問題