python3.5,OpenCV3.3を使っているプログラミング初心者です。
いつもお世話になっております。
モノクロの画像に白い点がいくつか存在し、それらのピクセル座標(x,y)を取得したいと考えています。
2重for文で回し(0,0)から(4096,2160)まで回し、その途中で白いピクセルが発見できたら、その座標を保存するプログラムを書きたいです。
以下、ソースコードなのですが、
まず、if文で白かどうかを判断するところが間違っていると思います。
また、このコードだと、1回実行するのにもものすごく時間がかかってしまいます。。。
なにか良い解決策はありますでしょうか??
python
1def main(): 2 3 4 #画像を入力 5 img = input('画像をを入力してください: ') 6 #画像の読み込み 7 img=cv2.imread(img) 8 9 cv2.namedWindow("img", cv2.WINDOW_KEEPRATIO | cv2.WINDOW_NORMAL) 10 11 X = [] 12 Y = [] 13 count = 0 14 15 16 #4096ピクセルまで繰り返し 17 for i in range(0, 4096): 18 #2160ピクセルまで繰り返し 19 for j in range(0, 2160): 20 #そこのピクセルが白ならば←ここが間違っている? 21 if (i,j) == white: 22 #リストにその座標値を保存 23 X.append(i) 24 Y.append(j) 25 #入った個数をカウント 26 count += 1 27 28 print(X) 29 print(Y) 30 print(count) 31 32 33if __name__ == "__main__": 34 main()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/11 16:29