亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

opencv檢測直線方法之投影法

2020-01-26 13:35:12
字體:
來源:轉載
供稿:網友

本文實例為大家分享了opencv檢測直線之投影法的具體代碼,供大家參考,具體內容如下

以下是我對投影法的一點認識和實驗:

投影法就是數字圖像在某個方向上進行像素累加。通過水平和垂直方向的投影,可以得到表格圖像投影的幾個特點:

(1)表格區域的水平與豎直投影分布通常出現周期性的尖峰

(2)在文字投影的行與行之間或列與列之間常會出現明顯的空白區

因此,求圖像水平以及豎直投影,根據特點分別設以閾值就可以將橫線以及豎直線所在位置確定。

  第一步:求圖像的水平投影、豎直投影

  第二步:設定合理閾值,求取大于閾值的坐標(水平投影記錄縱坐標,垂直投影記錄橫坐標)

  第三步:根據記錄縱坐標恢復水平線,根據記錄橫坐標恢復豎直線。

下面附整體代碼以及實驗結果:

#include<iostream> #include<vector>#include <cv.h> #include <highgui.h>using namespace std;using namespace cv;Mat VerticalLine(Mat srcImageBin)//垂直線條檢測 {  vector <int> array;//動態數組用來存儲投影值大于閾值的橫坐標  int *colswidth = new int[srcImageBin.cols]; //申請src.image.cols個int型的內存空間,存儲二值圖中每列的白色像素數  memset(colswidth, 0, srcImageBin.cols * 4); //數組必須賦初值為零,否則出錯。無法遍歷數組。   int value; for (int i = 0; i < srcImageBin.cols; i++) {  for (int j = 0; j < srcImageBin.rows; j++) { value = srcImageBin.at<uchar>(j, i);  if (value == 255) { colswidth[i]++; //統計每列的白色像素點   }  }  }  Mat lineImage(srcImageBin.rows, srcImageBin.cols, CV_8UC1, cv::Scalar(0, 0, 0));  //尋找投影大于閾值0.3*srcImageBin.rows的橫坐標 for (int i = 0; i < srcImageBin.cols; i++) { bool flag = true;  for (int j = 0; j < colswidth[i] && colswidth[i] >= (0.3*srcImageBin.rows); j++) {  if (flag == true) { array.push_back(i); flag = false; } } } int count = array.size(); //恢復直線 for (int n = 0; n < srcImageBin.rows; n++) { for (int w = 0; w<count; w++) { if (srcImageBin.at<uchar>(n, array[w]) == 255) { lineImage.at<uchar>(n, array[w]) = 255; }  } }    delete[] colswidth; return lineImage;}Mat HorizonLine(Mat srcImageBin)//水平線條檢測{ vector <int> array1;  int *rowswidth = new int[srcImageBin.rows];  memset(rowswidth, 0, srcImageBin.rows * 4);  int value; for (int i = 0; i < srcImageBin.rows; i++) { for (int j = 0; j < srcImageBin.cols; j++) { value = srcImageBin.at<uchar>(i, j); if (value == 255) { rowswidth[i]++; //統計每行的白色像素點  } }  }  Mat lineImage(srcImageBin.rows, srcImageBin.cols, CV_8UC1, cv::Scalar(0, 0, 0));  //尋找投影大于閾值0.525*srcImageBin.cols的縱坐標 for (int i = 0; i < srcImageBin.rows; i++) { bool flag = true; for (int j = 0; j < rowswidth[i] && rowswidth[i] >= (0.525*srcImageBin.cols); j++) { if (flag == true) { array1.push_back(i); flag = false; }  } } int count = array1.size();  //恢復水平線 for (int h = 0; h<count; h++) { for (int m = 0; m < srcImageBin.cols; m++) { if (srcImageBin.at<uchar>(array1[h], m) == 255) { lineImage.at<uchar>(array1[h], m) = 255; }  } }   delete[] rowswidth;//釋放前面申請的空間  return lineImage;}int main(){ Mat srcImage = imread("E://x.jpg"); Mat closeimage; imshow("原圖", srcImage); if (srcImage.channels() > 1) cvtColor(srcImage, srcImage, CV_RGB2GRAY); Mat srcImageBin; threshold(srcImage, srcImageBin, 140, 255, CV_THRESH_OTSU | CV_THRESH_BINARY_INV);  Mat VP; VP = VerticalLine(srcImageBin);  Mat HP; HP = HorizonLine(srcImageBin);  Mat mergelineImage;  bitwise_or(HP, VP, mergelineImage); imshow("mergelineImage", mergelineImage);  waitKey(0); return 0; }

實驗結果如下:

由上結果可知,如果直線中間有字會被誤檢為直線,圖中用紅色橢圓標出。

文中若有錯誤的不妥的地方,還望指出,以便共同學習。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久二区| 亚洲国产精品国自产拍av秋霞| 国产欧美日韩中文| 在线观看国产精品91| 欧美国产精品人人做人人爱| 国产精品一区av| 欧美一级大片在线观看| 亚洲视频在线免费看| 免费91麻豆精品国产自产在线观看| 国产成人一区二区| 亚洲第一男人天堂| 国产一区二区三区在线免费观看| 欧美成人全部免费| 高清日韩电视剧大全免费播放在线观看| 中文国产成人精品久久一| 97人人做人人爱| 成年无码av片在线| 日韩中文在线不卡| 欧美精品手机在线| 中文字幕日韩专区| 中文字幕亚洲欧美日韩2019| 欧美乱妇高清无乱码| 亚洲人午夜精品免费| 日韩在线视频观看| 亚洲已满18点击进入在线看片| 久久香蕉国产线看观看av| 亚洲图片欧洲图片av| 欧美性猛交xxxx乱大交3| 国产一区av在线| 91亚洲午夜在线| 黑人巨大精品欧美一区二区一视频| 国产午夜精品一区二区三区| 国产精品精品久久久久久| 国产精品视频资源| 久久影视电视剧免费网站清宫辞电视| 国产精品国产三级国产aⅴ浪潮| 伊人伊人伊人久久| 国产精品91一区| 日韩在线视频免费观看高清中文| 久久av.com| 国产亚洲精品激情久久| 国产91精品黑色丝袜高跟鞋| 狠狠色狠色综合曰曰| 国产精品欧美在线| 欧美日韩美女在线观看| 国产精品 欧美在线| 日本国产高清不卡| 欧美亚洲免费电影| 欧亚精品在线观看| 欧美日韩精品中文字幕| 欧美性做爰毛片| 国产精品v日韩精品| 日日摸夜夜添一区| 欧美日韩国产一区二区| 久久久久成人网| …久久精品99久久香蕉国产| 日韩一区二区福利| 久久久久久久激情视频| 国产日韩亚洲欧美| 国产视频丨精品|在线观看| 久久精品中文字幕电影| 欧美精品激情blacked18| 久久久久久久久久婷婷| 91精品国产高清自在线看超| 国产精品一二三在线| 韩国一区二区电影| 国产午夜精品美女视频明星a级| 国产不卡精品视男人的天堂| 亚洲欧洲日产国产网站| 欧美日韩成人在线播放| 性欧美xxxx交| 亚洲成色999久久网站| 久久国产加勒比精品无码| 久久久精品国产一区二区| 国产在线视频一区| 亚洲在线免费观看| 在线成人激情黄色| 91高潮在线观看| 日日骚久久av| 欧美福利小视频| 欧美激情视频免费观看| 国产精品久久97| 美女999久久久精品视频| 日韩精品在线视频观看| 精品香蕉在线观看视频一| 裸体女人亚洲精品一区| 亚洲精品久久久久久久久| 日韩av电影手机在线观看| 国产成人短视频| 亚洲iv一区二区三区| 亚洲最大的av网站| 日韩一区二区欧美| 国产香蕉97碰碰久久人人| 综合欧美国产视频二区| 国产美女精彩久久| 欧美激情女人20p| 欧美国产视频日韩| www日韩中文字幕在线看| 日韩av在线影院| 亚洲性无码av在线| 91av视频在线免费观看| 精品少妇v888av| 欧美激情视频一区| 日韩中文在线中文网三级| 久久手机免费视频| 81精品国产乱码久久久久久| 久久人人爽人人爽人人片av高请| 国产精品精品久久久久久| 国内成人精品一区| 91av视频在线播放| 亚洲日韩中文字幕| 91在线视频成人| 国产精品色视频| 免费不卡欧美自拍视频| 国产精品美女999| 欧美电影在线播放| 1769国产精品| 亚洲欧美国产一区二区三区| 国产日韩中文字幕在线| 亚洲999一在线观看www| 欧美日韩999| 日本在线精品视频| 欧美国产乱视频| 九九精品在线观看| 久久人91精品久久久久久不卡| 欧美性视频在线| 色777狠狠综合秋免鲁丝| 精品国产欧美一区二区五十路| 国产亚洲精品一区二区| 中文字幕av一区中文字幕天堂| 国产亚洲精品久久| 亚洲视频一区二区三区| 亚洲成人xxx| 久久久在线免费观看| 久久久精品视频成人| 91av福利视频| 韩国视频理论视频久久| 久久亚洲私人国产精品va| 日韩精品在线视频| 国产精品国产自产拍高清av水多| www日韩中文字幕在线看| 国产亚洲精品久久久久久| 欧美午夜久久久| 欧美激情乱人伦| 欧美另类交人妖| 精品国产欧美一区二区三区成人| 亚洲人成伊人成综合网久久久| 久久99久久久久久久噜噜| 17婷婷久久www| 久久精品国产亚洲7777| 91精品国产99久久久久久| 免费av在线一区| 亚洲精品91美女久久久久久久| 最新中文字幕亚洲| 美日韩精品视频免费看| 亚洲一区美女视频在线观看免费| 亚洲老头老太hd| 中日韩美女免费视频网址在线观看| 91久久在线播放| 国产亚洲成av人片在线观看桃| 久久久之久亚州精品露出| 国产狼人综合免费视频| 中文字幕在线日韩| 久热精品在线视频|