2016-07-21 168 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 –