2016-08-04 165 views
-2

我已經在圖像上使用canny邊緣檢測器。 它檢測到圖像中的某些區域和其他區域沒有任何顯示。 現在,我想要在原始圖像上掩蓋完全黑色的區域。 我該怎麼辦?python邊緣檢測器 - 掩蓋該區域是完全黑色

我使用Python和skimage或OpenCV的(並不重要的一個)

from skimage.feature import canny 
from skimage.morphology import closing 
import skimage.io 
import numpy as np 
import os 
import matplotlib.pyplot as plt 
import cv2 

img = skimage.io.imread("test.jpg",as_grey=True) 
fig, ax = plt.subplots(1, 1, figsize=(20,20)) 
ax.imshow(img,'gray') 
ax.set_axis_off() 
plt.show() 

edges = canny(img) 

close = closing(edges) 

fig, ax = plt.subplots(1, 1, figsize=(20,20)) 
ax.imshow(close,'gray') 
ax.set_axis_off() 
plt.show() 

Original Image After canny and closing

現在我想的是,白色部分(第二圖像)將是原始圖像中將顯示的唯一部分(掩蔽)

+1

附上樣品輸入和電流輸出,使您的問題更清晰。 – ZdaR

+0

我編輯過。它應該是一個簡單的掩蓋問題 – Lee

+0

你會對使用opencv感到舒服嗎? – ZdaR

回答

1

您可以簡單地在RGB圖像上應用二進制掩碼:

close_BGR = cv2.cvtColor(close, cv2.COLOR_GRAY2BGR) 
# Assuming that the img is of RGB format 
masked_image = cv2.min(close_BGR, img)