2016-07-21 167 views
1

我正在使用Python和OpenCV,并且我都是新手。 对于我的项目,我需要在图片上移动一个滑动窗口;对于窗口的每个位置,窗口外的区域必须比窗口内的区域更暗。Python + OpenCV,改变滑动窗口之外的亮度/黑暗度?

这是我的代码的一部分需要照顾的画面和窗口的可视化(为滑动窗口的有效位置计算别的地方)

for (x, y, window) in valid_positions:   
    if window.shape[0] != winH or window.shape[1] != winW: 
     continue 

    # Put here stuff to process the window content 
    # i.e apply a classifier 

    clone = image.copy() 
    cv2.rectangle(clone, (x, y), (x + winW, y + winH), (0, 255, 0), 2) 

    cv2.imshow("Window", clone) 
    cv2.waitKey(1) 
    time.sleep(0.025) 

创建窗口和它的幻灯片上有效职位,以便部分运作良好。但我绝对不知道如何让窗外的图像显得更黑。

有什么建议吗? 在此先感谢。

编辑:我忘了添加一个重要的细节:我的输入图像总是在黑色和白色(甚至不是灰度,只是黑色和白色像素)。也许这可以更容易地改变亮度/黑暗度?

回答

1

通常,您可以保留窗口内的内容并降低整个图像的亮度。然后用原始内容替换窗口内的区域。这个窍门应该可行。这部分代码可能看起来像

clone = image.copy() 
windowArea = clone[y:y + winH, x:x + winW].copy() 
clone = np.floor(clone * 0.5).astype('uint8') # 0.5 can be adjusted 
clone[y:y + winH, x:x + winW] = windowArea 
cv2.rectangle(clone, (x, y), (x + winW, y + winH), (0, 255, 0), 2) 
+0

谢谢你,这就像一个魅力工作! :d –