如何在 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 个通道。这是我在 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)
结果是黑色背景上的红色方形轮廓
我有一张黑色背景的图片。我应该如何在上面画一个红色的形状?红色应该是 (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 个通道。这是我在 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)
结果是黑色背景上的红色方形轮廓