有没有办法将一个矩形像素块设置为opencv中的颜色(特别是在python中)而不是循环它们?例如某种二维切片语法或一旦设置了ROI,就会全部改变。
我试过im[0:100, 200:300] = (255,255,255)
没有运气
答案 0 :(得分:2)
你应该看看CV.Rectangle,它完全符合你的要求:) http://opencv.willowgarage.com/documentation/python/core_drawing_functions.html?highlight=rectangle#Rectangle
答案 1 :(得分:2)
im[0:100,200:300] = [255,255,255]
对我来说很好。
例如:
>>> im = cv2.imread('baboon.jpg')
>>> im[0:2,200:202]
array([[[180, 200, 181],
[164, 190, 166]],
[[170, 182, 164],
[124, 134, 118]]], dtype=uint8)
>>> im[0:100,200:300] = [255,255,255]
>>> im[0:2,200:202]
array([[[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255]]], dtype=uint8)
另一种方法是cv2.rectangle
cv2.rectangle(im,(200,0),(300,100),(255,255,255),-1)
但似乎cv2.rectangle比以前的切片方法更快(大约5倍)(根据我的测试)