python+opencv處理顏色之將目標顏色轉(zhuǎn)換實例代碼
目標:將紅色的部分濾出,轉(zhuǎn)化為綠色
下面是代碼+ 效果 + 解釋
import cv2 import numpy as np def dectfun(frame): # Convert the frame to HSV color space hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # Define the range for red color in HSV lower_red1 = np.array([0, 120, 70]) upper_red1 = np.array([10, 255, 255]) lower_red2 = np.array([170, 120, 70]) upper_red2 = np.array([180, 255, 255]) # Create a mask for red color mask1 = cv2.inRange(hsv, lower_red1, upper_red1) mask2 = cv2.inRange(hsv, lower_red2, upper_red2) mask = mask1 + mask2 # Create an output image to show the detected red regions in green result = frame.copy() result[mask > 0] = [0, 255, 0] # Change red regions to green return result def main(): # Open the webcam cap = cv2.VideoCapture(1) while True: # Read a frame ret, frame = cap.read() if not ret: break # Detect red regions and highlight them result = dectfun(frame) # Display the result cv2.imshow("Frame", result) if cv2.waitKey(1) & 0xFF == ord('q'): break # Release the webcam and close all windows cap.release() cv2.destroyAllWindows() if __name__ == "__main__": main()
轉(zhuǎn)HSV: 關(guān)于顏色總是要轉(zhuǎn)HSV的
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
掩膜
lower_red1 = np.array([0, 120, 70]) upper_red1 = np.array([10, 255, 255]) lower_red2 = np.array([170, 120, 70]) upper_red2 = np.array([180, 255, 255]) # Create a mask for red color mask1 = cv2.inRange(hsv, lower_red1, upper_red1) mask2 = cv2.inRange(hsv, lower_red2, upper_red2) mask = mask1 + mask2
在這段代碼中,mask 是一個數(shù)組。具體來說,它是一個二值圖像(即一個包含0和255的數(shù)組),表示在HSV顏色空間中紅色區(qū)域的掩膜。 在掩膜區(qū)域內(nèi)的是我們的目標lower_red1, upper_red1
標注是255 其余是0
再標注
# Create an output image to show the detected red regions in green result = frame.copy() result[mask > 0] = [0, 255, 0] # Change red regions to green return result
result = frame.copy()
在Python中,變量通常是引用類型,如果你在函數(shù)中直接修改傳入的數(shù)組或?qū)ο螅鼈兊闹禃谰酶淖儭?/li>result[mask > 0] = [0, 255, 0]
這是個巧妙的句子,當mask的對應(yīng)位置上的值大于零。 然后把result 對應(yīng)位置上的像素改成綠色
總結(jié)
到此這篇關(guān)于python+opencv處理顏色之將目標顏色轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)python opencv目標顏色轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python導(dǎo)出chrome書簽到markdown文件的實例代碼
python導(dǎo)出chrome書簽到markdown文件,主要就是解析chrome的bookmarks文件,然后拼接成markdown格式的字符串,最后輸出到文件即可。下面給大家分享實例代碼,需要的朋友參考下2017-12-12python3使用pandas獲取股票數(shù)據(jù)的方法
今天小編就為大家分享一篇python3使用pandas獲取股票數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12探索Python中zoneinfo模塊處理時區(qū)操作實例
這篇文章主要為大家介紹了探索Python中zoneinfo模塊的用法實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對比全面介紹
這篇文章主要為大家介紹了Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對比全面介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12python實現(xiàn)mask矩陣示例(根據(jù)列表所給元素)
這篇文章主要介紹了python實現(xiàn)mask矩陣示例(根據(jù)列表所給元素),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07