python+opencv處理顏色之將目標(biāo)顏色轉(zhuǎn)換實(shí)例代碼
目標(biāo):將紅色的部分濾出,轉(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 是一個(gè)數(shù)組。具體來(lái)說(shuō),它是一個(gè)二值圖像(即一個(gè)包含0和255的數(shù)組),表示在HSV顏色空間中紅色區(qū)域的掩膜。 在掩膜區(qū)域內(nèi)的是我們的目標(biāo)lower_red1, upper_red1
標(biāo)注是255 其余是0
再標(biāo)注
# 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ū)ο?,它們的值?huì)永久改變。result[mask > 0] = [0, 255, 0]
這是個(gè)巧妙的句子,當(dāng)mask的對(duì)應(yīng)位置上的值大于零。 然后把result 對(duì)應(yīng)位置上的像素改成綠色
總結(jié)
到此這篇關(guān)于python+opencv處理顏色之將目標(biāo)顏色轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)python opencv目標(biāo)顏色轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python導(dǎo)出chrome書簽到markdown文件的實(shí)例代碼
python導(dǎo)出chrome書簽到markdown文件,主要就是解析chrome的bookmarks文件,然后拼接成markdown格式的字符串,最后輸出到文件即可。下面給大家分享實(shí)例代碼,需要的朋友參考下2017-12-12python3使用pandas獲取股票數(shù)據(jù)的方法
今天小編就為大家分享一篇python3使用pandas獲取股票數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12探索Python中zoneinfo模塊處理時(shí)區(qū)操作實(shí)例
這篇文章主要為大家介紹了探索Python中zoneinfo模塊的用法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python?對(duì)象拷貝及深淺拷貝區(qū)別的詳細(xì)教程示例
這篇文章主要介紹了Python?對(duì)象拷貝及深淺拷貝區(qū)別的詳細(xì)教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對(duì)比全面介紹
這篇文章主要為大家介紹了Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對(duì)比全面介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素)
這篇文章主要介紹了python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07