2016-06-11 34 views
0

我是opencv的新用戶。我目前正在做一個使用opencv進行產品檢查的項目。我打算提取好產品的邊緣和不好的產品,然後比較它們的邊緣可能與均方差。然而,作爲第一步清楚地提取邊緣已經相當困難。帶有opencv的計算機視覺 - 邊緣檢測產品檢測

好樣本:好的產品 [1] 當我使用Canny邊緣檢測,把好產品的邊緣(圖片的藍色部分)只[在這裏輸入的形象描述] [1]!]包括產品的一部分,如下: 邊緣好的產品 [2]

我還試圖用adaptiveThreshold使灰階畫面更加清晰[在這裏輸入的形象描述] [2]!]然後使用邊緣檢測。但是,由於噪聲很多,檢測到的邊緣不如預期的那麼好。

因此,我想問一個解決方案,提取邊緣或任何比較好的產品和壞產品與opencv的更好的方法。對不起,以上英文不好。

+0

最好的可能是獲得更好的照明和統一的背景 – Micka

+0

謝謝!如果我能成功地提取好的和壞的產品的邊緣,我應該用什麼樣的比較方法來進一步測試兩個邊緣?如果我使用平方差或逐個像素的直接差異,由於移動的圖像,它似乎是一個意想不到的差異。因此,我想問問是否有任何方法將兩個圖像與opencv對齊,以便我可以直接提取或使用方差來計算兩個圖像的相似度。 –

+0

示例圖像丟失 – sturkmen

回答

0

如果下面的一些假設是有效的,那麼這個任務可以變得簡單。例如:

  1. 產品沿同一條生產線移動,因此所有產品圖像上的照明保持不變。
  2. 產品位於平行於相機焦平面的平面上,因此物體的旋轉只能在鏡頭的軸線周圍。
  3. 照明可以控制(這將幫助你獲得更好的邊緣,而實際上是在生產線圖像處理中)

由於我們無法看到您添加的圖片,這是一個有點難以看看究竟是什麼情況。但是,如果上述假設是有效的,則圖像差異與圖像簽名結合是一種可能的方法。

另一種可能性是使用好的和壞的產品來訓練Haar級聯分類器。有了這個,邊緣和所有將被照顧。但是你必須收集大量數據並訓練分類器。

+0

非常感謝〜我打算做的事情如下: 1.使用OPENCV模板匹配功能,以好產品爲模板。然後它會從測試圖像中提取感興趣的區域。這聽起來模板匹配功能可以確保兩個圖像對齊(方向)。 2.使用Opencv形狀距離來計算模板和測試圖像之間的差異。 由於我還處於測試期,我不確定上述方法是否有效。 –

+0

我已經使用opencv Shape_example作爲基礎。我嘗試使用shape_example代碼來比較相同的圖像...但是,我觀察到即使是相同的圖像也會出現不同的距離編號....我期待0或非常非常接近於0的相同圖像比較... 源代碼可以找到:https://github.com/Itseez/opencv/blob/master/samples/cpp/shape_example.cpp –