我正在研究一個物體檢測問題,我必須檢測小型彩色汽車。我使用顏色作為目標(biāo)對象的主要特征表示,并應(yīng)用直方圖反投影。然而,如您所知,很難保持顏色一致性,因?yàn)轭伾恼斩茸兓艽?。然而,如果我可以測量亮度如何變化,我就可以控制顏色的變化。因此,我將視頻幀轉(zhuǎn)換為 HSV,因?yàn)?V 通道代表圖像的亮度(亮度),我使用以下代碼計(jì)算該通道的最小/最大平均值:import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltcap=cv.VideoCapture(r'C:/Users/kjbaili/Docum_changes.mp4')Mean_list=[]while cap.isOpened: ret,frame=cap.read() if ret!=True: print("cant open Video, please check your source") break else: HSV=cv.cvtColor(frame.copy(),cv.COLOR_BGR2HSV) h,s,v=cv.split(HSV) cv.imshow('HSV_image',HSV) MEAN_V=v.mean() Mean_list.append(MEAN_V) print('mean_V',MEAN_V) cv.waitKey(1)print('Minimum_ lightness ', min(Mean_list))print('Maximum_lightness ',max( Mean_list))cv.destroyAllWindows()結(jié)果是Minimum_ lightness 137.57618546786645Maximum_lightness 172.9926900112821所以通過觀察視頻,V通道的值從172-->137下降。因此,如果我將v通道的值設(shè)置為始終172,那么理論上視頻中的顏色將是相同的。所以我的問題是:如果可能的話,我怎樣才能將V通道的值設(shè)置為常數(shù)值= 172?提前致謝
1 回答

絕地?zé)o雙
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個贊
您可以使用 numpy 語法將通道的值設(shè)置為 Python/OpenCV 中的某個常量,如下所示
v[:,:] = 172
這會將圖像中的每個 x,y 灰度值設(shè)置為 172。
添加回答
舉報
0/150
提交
取消