opencv+python 鼠標指針顏色檢測

該模塊有助於瞭解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)   #想要追蹤顏色的Bcv2.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()


左上角將會顯示鼠標指針處的顏色(指針並未出現在截屏處,但實際上是有的)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章