繁体   English   中英

如何在cv2中在黑色背景上绘制红色形状?

[英]How to draw a red shape on a black background in cv2?

我有一个黑色背景的图像。 我应该如何在上面画一个红色的形状? 红色应该是 (0,0,255) 对吧? 但它显示为黑色,因此在黑色背景下不可见。 我能做的最好的就是在下面的例子中创建一个白色矩形。 我的问题是我应该如何使它变红? 我想我在这里遗漏了一些简单的东西。 请帮忙。

import cv2
import numpy as np

img = np.zeros((500,500,1), np.uint16)
cv2.rectangle(img, (200, 200), (300, 300), (0, 0, 255), 5)
cv2.imshow('image',img)
cv2.waitKey(100000)

你会看到矩形甚至没有出现:

在此处输入图像描述

我能做的最好的就是像这样的白色矩形:

img = np.zeros((500,500,1), np.uint16)
cv2.rectangle(img, (200, 200), (300, 300), (2**16, 0, 0), 5)
cv2.imshow('image',img)
cv2.waitKey(100000)

在此处输入图像描述

您正在尝试在黑色(一个通道)图像上绘制颜色(3 个通道)。 您需要将黑色图像转换为 3 个通道。 这是我在 Python/OpenCV 中的做法

import cv2
import numpy as np

# create one channel black image (grayscale)
img = np.zeros((500,500))

# convert to 3 channel black (color)
img = cv2.merge([img,img,img])

# draw on it in color
cv2.rectangle(img, (200, 200), (300, 300), (0, 0, 255), 5)
cv2.imshow('image',img)
cv2.waitKey(0)


结果是黑色背景上的红色方形轮廓

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM