将像素块设置为opencv颜色

时间:2012-03-08 15:06:42

标签: python opencv

有没有办法将一个矩形像素块设置为opencv中的颜色(特别是在python中)而不是循环它们?例如某种二维切片语法或一旦设置了ROI,就会全部改变。

我试过im[0:100, 200:300] = (255,255,255)没有运气

2 个答案:

答案 0 :(得分:2)

答案 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倍)(根据我的测试)