演算法部分 大菸盒表面異常檢測

2021-10-10 09:24:16 字數 2211 閱讀 2427

二、檢測內容

總結大菸盒表面異常檢測部署在鄭州**葉天香系列產線工位三,其功能檢測菸盒的塑封膜是否破損、翹起、褶皺等,表面印刷是否缺失、變形、煙渣髒汙,絲帶是否外漏,拉絲是否翹起等缺陷,檢測方法採用傳統影象處理,基於opencv做開發部署。

**如下

**如下

**如下

1.1.1 上表面 角點檢測透視變換如下:

1.1.2 上表面 邊緣檢測採用roi內非零畫素數比例和檢測缺陷的長度面積,在內部採用檢測缺陷的長度面積。

1.1.3 下表面塑封膜有鼓泡翹起的現象,導致成像變黑。因此動態的調整檢測區域的大小。

1.1.4 上表面 邊緣檢測採用roi內非零畫素數比例和檢測缺陷的長度面積,在內部採用檢測缺陷的長度面積,不同區域不同固定閾值。

roi區域,非零畫素的面積比例,**如下

//2.每個roi的非零check

bool subcheckflag = true; bool checkresflag = true;

for (size_t index = 0; index < checkbinszeros.size(); index++)

if (false == resresult.resdiffflag)

if ((false == resresult.resdiffflag) && (true == checkresflag))

}

2.1.1 上表面印刷 原圖透視變換如下,分上下左右和中間五個區域,邊界四個區域側重檢測邊界壓痕,中間原計畫oneclass神經網路檢測文字印刷等區域。

2.1.2 上表面印刷 文字髒汙煙渣檢測如下,文字分割後模板匹配無法使用,原因是不同的菸盒,同乙個部位由於上下凹凸導致字型大小不一致,暫時採用文字的非零畫素數。

2.1.3 上表面印刷 塑封膜翹起壓角檢測如下。

2.1.4 下表面印刷 髒汙文字檢測如下。

2.1.5 下表面印刷 塑封膜翹起壓角檢測如下。

文字和logo的分割**如下

//字元char的分割成rects

bool getsubroicharsseg(const cv::mat& srcimg, const roi_bin_seg_param&

roibinsegparam,check_result& tmplateres, seg_pos_point& roisegpospoint)

tmplateres.resdiffflag = true;

//2. 橫向 獲取y的座標, 該座標是在roi的sub位置

bool posyflag = getsegyposition(srcimg, roibinsegparam.posysegparam, roisegpospoint);

//3. 豎向 列的字元的分割, 獲取x的座標, roi的sub位置

bool posxflag = getsegxsposition(srcimg, roibinsegparam.posxsegparam, roisegpospoint);

return true;

}

**如下(示例):

**如下(示例):

**如下(示例):

**如下(示例):

**如下(示例):

**如下(示例):

演算法部分整理

1.pca主成分分析 主成分分析 principal component analysis,pca 是一種統計方法。通過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分。無監督的學習,往特徵量最大的特徵向量的分銷商投影 pca的主要問題 沒有考慮類別號 進行主成...

排序演算法(部分)

快速排序會犧牲陣列中的乙個資料,所以實際的陣列長度,會比真實的資料多一,其中會將下面所說的標誌位賦值給arr 0 以犧牲陣列中arr 0 為例 快速排序主要思想 在陣列角標從left到right之間,取左邊第乙個數作為標誌位,將標誌位賦值給arr 0 然後分兩步迴圈判斷 這兩步順序不能混亂 1.從右...

《演算法之道》精華 經典演算法部分

折半插入排序 歸併排序 快排 任何基於比較的排序,決策樹高度至少為nlog n 計數排序 基數排序 桶排序 快速次序選擇 求第k大的數 線性最差快速次序選擇 折半搜尋 常數搜尋 雜湊搜尋 乘法雜湊 開放定址雜湊 雜湊碰撞時縱深擴充套件,新增乙個鍊錶 封閉定址雜湊 雜湊碰撞時為元素找到另乙個位置 非線...