PATH_TO_IMPUT_IMAGE_DATA に画像データへのフルパス
PATH_TO_OUTPUT_IMAGE_DATA に出力画像のフルパス
を指定して下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import cv2 import numpy # 対象の画像データ data = cv2.imread(PATH_TO_IMPUT_IMAGE_DATA, cv2.IMREAD_COLOR) # 今回は特定の色なので、HSVの方が扱い易いためHSVに変換して利用します。 hsvdata = cv2.cvtColor(data, cv2.COLOR_BGR2HSV) # 抽出する HSV の値の下限値 H S V の順 # それぞれの範囲は # H : 0 - 179 # S : 0 - 255 # V : 0 - 255 # となる。 H を360で表現しているものを変換して使う場合は単純に 2 で割れば良いです。 lower_hsv = numpy.array([20, 0, 0]) # 抽出する上限の HSV の値 upper_hsv = numpy.array([50, 255, 255]) # マスク画像を作成 img_mask = cv2.inRange(hsvdata, lower_hsv, upper_hsv) # 元画像と掛け合わせる filtered_img = cv2.bitwise_and(hsvdata, hsvdata, mask=img_mask) # 保存する cv2.imwrite(PATH_TO_OUTPUT_IMAGE_DATA, filtered_img) |
上記プログラムでマスクされたもの
元画像
マスクされた画像
「[python] Open CV で特定の色だけでフィルタした画像を作成する」への1件のフィードバック