我有一個幾乎不變的線條的圖像,我使用algorythm與形態操作來清除它們的圖像。事情是,形態開放或閉合將線與圖像的邊緣合併,而不僅僅是融化鄰居輪廓。我只需要通過形態學操作融合的鄰居輪廓,並避免這條線與邊緣融合,因爲後來我無法從圖像中清除該線的合併和平。即使我反轉圖像和變形,問題仍然存在。操作(圖像像素從黑到白,白到黑,而不是打開我使用關閉)。形態學操作合併線條與圖片的邊緣
如何停止?
我用這個操作合併鄰居輪廓:
Mat morphKernelClose = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new org.opencv.core.Size(25, 25));
Imgproc.morphologyEx(src, src, Imgproc.MORPH_CLOSE, morphKernelClose);
簡單的Canny圖像:
:
使用MORPH_CLOSE後圖片
此錯誤不允許我完全清除線(那些合併部分是左)通過使用第二形態學運算,相對的第一至使用。
morphologyEx的C++版本具有處理邊界的參數。不確定它們是否也存在於java(?)版本中。 – Micka
謝謝。在Java中有一個函數超載:public static void morphologyEx(Mat src,Mat dst,int op,Mat kernel,Point anchor,int iterations,int borderType,Scalar borderValue)',其中** ** borderType - 像素外插方法。有關詳細信息,請參閱「borderInterpolate」。**「和」** borderValue - 邊界常量時的邊界值。默認值有特殊含義。請參閱「createMorphologyFilter」以瞭解詳細信息。用適當的參數操縱邊界合併?我無法找到任何使用和解釋此用法的來源。 –
我想是的。去嘗試一下。將其設置爲border_constant並將值設置爲0. – Micka