總結塑封包裝的紙盒在邊界處有破損或者翹起等現象,需檢測為不良品。
直線邊緣有塑封膜的翹起, 如紅色框圖所示, 正常如綠色所示, 邊界處是一根直線, 沒有翹起。
如何對邊界進行銳化, 將異常塑封膜進行特徵突出顯示, 可構建不同方向的filter濾波核, 進而不同權值的疊加。
//1. 單通道的grayimg
cv::mat grayimg;
getgrayimg(srcimg, grayimg);
//2. 在豎直方向的filter2d
cv::mat vertmat;
cv::filter2d(grayimg, vertmat, grayimg.depth(), vertkernel);
cv::convertscaleabs(vertmat, vertmat);
//3. 在順45方向的filter2d
cv::mat vert45mat;
cv::filter2d(grayimg, vert45mat, grayimg.depth(), kernelbl);
cv::convertscaleabs(vert45mat, vert45mat);
//4. 在逆45方向的filter2d
cv::mat vertan45mat;
cv::filter2d(grayimg, vertan45mat, grayimg.depth(), kernelbr);
cv::convertscaleabs(vertan45mat, vertan45mat);
//5. 各個方向銳化的相加
銳化的影象類似直線, 可進行直線的擬合進行特徵的檢測。
空間座標系到極座標的轉化如下, 這個點在極座標下對應的(ρ,θ)畫出來乙個週期是如下所示,以θ為x軸。
a: 將引數空間(ρ,θ)量化,賦初值乙個二維矩陣m,m(ρ,θ)就是乙個累加器了;
b: 每乙個點進行變換,變換到屬於哪一組(ρ,θ),就把該組(ρ,θ)對應的累加器數加;
c: 分析得到的m(ρ,θ),設定乙個閾值t,認為當m(ρ,θ)>t,就認為存在一條有意義的直線存在;
在橫軸方向, 遍歷第乙個非零畫素的y座標, 進行直線的擬合直線的採用fitline函式, 具體實現如下
std::vectorindexpoints
for (size_t index = 0; index < size_t(pointsnum); index++)
if (nonezerocollength > linefeatureparam.fristpixindex)
}
找到一條直線,使得所有已知的點到這條直線的歐式距離的和最下, y = k*x +b
檢測直線的斜率 偏移的畫素點 左右位置的偏移 中間非零的畫素數
/*銳化單根線的check*/
message linepointcheck
1. 如何進行銳化, 突出異常區域是關鍵
2. 採用第index個非零的點, 進行直線的擬合
3. 直線特徵的檢測
空間中的語義直線檢測 直線檢測
期刊 現代計算機 為了限制河岸場景下不文明 違規的垂釣行為,提出一種融入深度學習的垂釣行為檢測方法。首先使用基於cnn開發的語義分割模型deeplabv3 來對影象進行區域分割從而實現對人與河流進行準確的分類識別及定位 其次,提出改.深度學習 直線檢測 本文提出了一種基於delta機械人的目標影象識...
Canny邊緣檢測
1.canny邊緣檢測基本原理 1 圖象邊緣檢測必須滿足兩個條件 一能有效地抑制雜訊 二必須盡量精確確定邊緣的位置。2 根據對訊雜比與定位乘積進行測度,得到最優化逼近運算元。這就是canny邊緣檢測運算元。3 類似與marr log 邊緣檢測方法,也屬於先平滑後求導數的方法。2.canny邊緣檢測演...
Canny邊緣檢測
canny運算元是邊緣檢測運算元中最常用的一種,是公認效能優良的一種運算元,常被其它邊緣檢測運算元作為標準運算元進行優劣分析。canny演算法基本可以分為3個步驟 平滑 梯度計算 基於梯度值及梯度方向的候選點過濾 1 平滑 影象梯度的計算對雜訊很敏感,因此必須首先對其進行低通濾波。在這裡使用5 5的...