生産技術者サラリーマンの日々

社畜サラリーマンが生産技術やお金の悩みを徒然と書くブログです。私の備忘録が共有できるとうれしいです

【OPEN CV+Python】色抽出したい物体の色情報をマウスで取得する

1. 目的
 色抽出を行う上で、HSV変換を利用して対象物体のH(色相)の範囲を指定する必要がある。
そんためには、対象物体のH(色相)の情報を事前に調べておく必要がある。
そこで、OPEN CVのマウス関数を使って、H(色相)を調べるプログラムをつくってみた

2.やってみる
 ポイント
 ・HSV変換した画像データ(HSV)をglobal変数として定義する。
  これにより、マウス関数でも参照することができる
 ・マウス関数は、コールバック関数でWhile文の前に定義しておく

import cv2
import numpy as np


def mouse_event(event, x, y,flags, param):

	if event == cv2.EVENT_LBUTTONUP:
		print('H:{0}, S:{1}, V:{2}'.format(hsv[y,x,0],hsv[y,x,1],hsv[y,x,2]))



def main():
	global hsv

	img = cv2.imread("input.jpg")
	hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

	cv2.namedWindow("input",cv2.WINDOW_NORMAL)
	cv2.setMouseCallback("input", mouse_event)

	while(1):
		cv2.imshow("input",img)
		if cv2.waitKey(1) & 0xFF == ord("q"):#input kybord "q"  
			break

	cv2.destroyAllWindows()

3.結果
f:id:inusan0424:20200120230057p:plainf:id:inusan0424:20200120230119p:plain

https://blog.hatena.ne.jp/inusan0424/inusan0424.hatenablog.com/config/design/detail