本文主要是介绍python+opencv处理颜色之将目标颜色转换实例代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope...
目标:将红色的部分滤出,转化为绿色
下面是代码+ 效果 + 解释
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 re编程d 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 rjavascriptegions 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()

转HSV: 关于颜色总是要转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([170China编程, 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 是一个数组。具体来说,它是一个二值图像(即一个包含0和255的数组),表示在HSV颜色空间中红色区域的掩膜。 在掩膜区域内的是我们的目标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中,变量通常是引用类型,如果你在函数中直接修改传入的数组或对象,它们的值会永久改变。result[mask > 0] = [0, 255, 0]这是个巧妙的句子,当mask的对应位置上的值大于零。 然后把result 对应位置上的像素改成绿色
总结
到此这篇关于python+opencv处理颜色之将目标颜色转换的文章就介绍到这了,更多相关python opencv目标颜色转换内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.China编程chinasem.cn)!
这篇关于python+opencv处理颜色之将目标颜色转换实例代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!