我已经编写了一个基本的Python代码来创建一个图像,然后在边界上放置一个矩形。这似乎不起作用。我检查了多个网站,这是他们使用的确切代码。不知道是什么问题
import cv2
import numpy as np
img = Image.new('RGB', (800, 900), color= (171, 183, 255))
cv2.rectangle(img,(1,1),(800,900),(255,0,0),15)
img
我得到了这个错误
TypeError
<ipython-input-251-4b78f75077e8> in <module>()
4 img = Image.new('RGB', (800, 900), color= (171, 183, 255))
5 # cv2.rectangle(img, 0, 0, 800, 900, (255,0,0))
----> 6 cv2.rectangle(img,(1,1),(800,900),(255,0,0),15)
7 img
TypeError: an integer is required (got type tuple)
有人能帮忙吗
找到了解决办法。谢谢@Martijn Pieters
在某些情况下,OpenCV需要使用UMat类包装图像
cv2
模块将numpy数组作为映像使用,而不是使用PIL
{因为
cv2.rectangle
实现和Image
类型都是完全在编译代码中实现的,所以回溯对于理解出错的地方并没有多大帮助。在后台,本机cv2.rectangle()
代码尝试访问image对象上需要整数但cv2.rectangle()
在元组中传递的内容,因为它希望与numpy数组交互如果您想要的只是一张RGB颜色一致的空白图像,请创建一个numpy阵列,将形状(宽度、高度、3)和3个色带设置为首选RGB值:
然后对该数组应用
cv2.rectangle()
调用您始终可以使用以下各项从和转换为PIL图像:
相关问题 更多 >
编程相关推荐