以下のコードにおけるimg_dstが思ったように表示されません。
Python
1import cv2 2import math 3import numpy as np 4import random as rd 5 6file_src = 'src.png' 7file_dst = 'dst.png' 8 9img_src = cv2.imread(file_src, 0) # 入力画像(グレースケール)の読み込み 10 11cv2.namedWindow('src') 12cv2.namedWindow('dst') 13 14 15height, width = img_src.shape[:2] 16 17img_dst = np.array([[0 for i in range(width)] for j in range(height)]) 18 19print(img_dst) 20 21for y in range(height): 22 for x in range(width): 23 v = img_src[y][x] 24 if v < rd.randrange(256): 25 img_dst[y][x] = 0 26 else: 27 img_dst[y][x] = 255 28 29print(img_dst) 30 31 32cv2.imshow('src', img_src) # 入力画像を表示 33cv2.imshow('dst', img_dst) # 出力画像を表示 34cv2.imwrite(file_dst, img_dst) # 処理結果の保存 35cv2.waitKey(0) # キー入力待ち 36cv2.destroyAllWindows()
以下が出力です。
[[0 0 0 ... 0 0 0] [0 0 0 ... 0 0 0] [0 0 0 ... 0 0 0] ... [0 0 0 ... 0 0 0] [0 0 0 ... 0 0 0] [0 0 0 ... 0 0 0]] [[255 255 0 ... 0 0 0] [ 0 255 0 ... 0 0 0] [255 0 255 ... 0 0 0] ... [255 0 0 ... 0 0 0] [ 0 0 0 ... 0 0 255]
このように、cv2.imshow('dst', img_dst) # 出力画像を表示 の直前でimg_dstは白い画素をもっているのに、実際にはこのプログラムを実行すると真っ黒の画像が表示されます。ただし、imwriteで処理結果を保存した先のファイルを開くと、ちゃんと白い画素を持つ、欲しかった画像が表示されます。
どうすれば解決しますか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/03 07:59