該模塊有助於瞭解opencv中顏色的分佈,返回rgb值並在屏幕左上角顯示出來
import numpy as np import math import cv2 import time ix=1 iy=1 f=[] a=1 b=1 c=1 ixx=1 iyy=1 def nothing(x): pass def onmouse(event,x,y,flags,param): global ix,iy,f,a,b,c,ixx,iyy if event==cv2.EVENT_MOUSEMOVE: #frame[y,x].tolist() #print(frame[y,x]) f=list(frame[y,x]) ix=x iy=y a=f[0] b=f[1] c=f[2] if event==cv2.EVENT_LBUTTONDBLCLK: ixx=x iyy=y cap = cv2.VideoCapture(0) #打開攝像頭0 var = cv2.CAP_PVAPI LowerRed = np.array([24, 75, 37]) # 創建改變顏色的滾動條 # cv2.namedWindow("fps") #新建一個窗口 # cv2.createTrackbar('R','fps',89,255,nothing) #想要追蹤顏色的R值 # cv2.createTrackbar('G','fps',254,255,nothing) #想要追蹤顏色的G值 # cv2.createTrackbar('B','fps',254,255,nothing) #想要追蹤顏色的B值 cv2.createTrackbar('threshold','fps',19,255,nothing) #二值化閾值 while(1): #滑動條賦值 r=int(a) g=int(b) b=int(c) #c = cv2.getTrackbarPos('threshold', 'fps') #UpperRed = np.array([r, g, b]) ret, frame = cap.read()#得到每一幀 imgHSV=cv2.cvtColor(frame,cv2.COLOR_RGB2HSV) cv2.setMouseCallback('fps',onmouse) #print(ix,iy) cv2.rectangle(frame, (10, 10), (100, 50), (r, g, b), 3) cv2.line(frame,(ixx,0),(ixx,700),(255,0,0),3) cv2.line(frame, (0, iyy), (700, iyy), (255, 0, 0), 3) cv2.imshow("fps", frame) #print(a[1]) cv2.imshow("imgHSV",imgHSV) if cv2.waitKey(1) & 0xFF == ord('q'): # 按q保存一張圖片 #cv2.imwrite("E:\cpy\pictures\\pic.jpg", frame1) break cap.release() cv2.destroyAllWindows()
左上角將會顯示鼠標指針處的顏色(指針並未出現在截屏處,但實際上是有的)