2017-02-26 55 views
0

我有一個圖像中有水平線。我發現這種方法的作用有點好,就是使用imagemagick來形成這種形態。使用opencv查找等效的imagemagick形態學命令Python

convert orig.jpg -morphology close:1 "1x7: 1,0,0,0,0,0,1" final.jpg 

它正在運行與1X7內核

我試圖找到OpenCV的蟒蛇相當於該形態的一次迭代。

回答

1

此命令可以被翻譯到的OpenCV的圖像進行收盤形態操作:

kernel = np.array([1, 0, 0, 0, 0, 0, 1], dtype=np.uint8) # 1x7: 1,0,0,0,0,0,1 
closing = cv2.morphologyEx(img, 
          cv2.MORPH_CLOSE, # morphology close:1 
          kernel) 
+0

我得到的錯誤'斷言失敗(_kernel.type()== CV_8U)在MorphFilter,文件/ home/guru/opencv-2.4.10/modules/imgproc/src/morph.cpp,line 791 mitre1.jpg /home/guru/opencv-2.4.10/modules/imgproc/src/morph.cpp:791:error :(-215)_kernel.type()==函數MorphFilter'中的CV_8U,同時在opencv中使用您提供的代碼段執行此操作。如果我將'np.array([[1,0,0,0,0,0,1]])''更改爲'np.ones((1,1))',那麼它工作正常。有什麼想法嗎? – Anthony

+0

對不起@Anthony錯過了那裏顯而易見的東西,編輯。 – ZdaR

+0

謝謝!工作!然而,我沒有得到任何接近imagemagik提供的結果。 [原始圖片](https://www.dropbox.com/s/qifnldrd5wpi0vh/mitre1.crop.warped1.jpg?dl=0),[從imagemagik轉換](https://www.dropbox.com/s/ yj34ot1xmc619q6/mitre1.crop.im.jpg?dl = 0),[從opencv轉換](https://www.dropbox.com/s/tjdo1i0pbiiyuc5/mitre1.crop.closed.jpg?dl=0) – Anthony