国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

【Rayeager PX2分享】OpenCV入門之線段檢測(cè)

發(fā)布時(shí)間:2015-5-26 11:39    發(fā)布者:穿prada的008
關(guān)鍵詞: opencv
線段檢測(cè)主要運(yùn)用Hough變換,Hough變換是圖像處理中從圖像中識(shí)別幾何形狀的基本方法之一,應(yīng)用很廣泛,也有很多改進(jìn)算法。主要用來從圖像中分離出具有某種相同特征的幾何形狀(如,直線,圓等)。最基本的霍夫變換是從黑白圖像中檢測(cè)直線(線段)。
在OpenCV編程中,實(shí)現(xiàn)線段檢測(cè)主要使用cvHoughLines2函數(shù)。
函數(shù)原型:
CvSeq* cvHoughLines2(
  CvArr* image,
  void* line_storage,
  int method,
  double rho,
  double theta,
  int threshold,
  double param1=0, double param2=0
);

參數(shù)說明:
第一個(gè)參數(shù)表示輸入圖像,必須為二值圖像(黑白圖)。
第二個(gè)參數(shù)表示存儲(chǔ)容器,可以傳入CvMemStorage類型的指針。
第三個(gè)參數(shù)表示變換變量,可以取下面的值:
  CV_HOUGH_STANDARD - 傳統(tǒng)或標(biāo)準(zhǔn) Hough 變換. 每一個(gè)線段由兩個(gè)浮點(diǎn)數(shù) (ρ, θ) 表示,其中 ρ 是線段與原點(diǎn) (0,0) 之間的距離,θ 線段與 x-軸之間的夾角。
  CV_HOUGH_PROBABILISTIC - 概率 Hough 變換(如果圖像包含一些長(zhǎng)的線性分割,則效率更高)。它返回線段分割而不是整個(gè)線段。每個(gè)分割用起點(diǎn)和終點(diǎn)來表示。
  CV_HOUGH_MULTI_SCALE - 傳統(tǒng) Hough 變換的多尺度變種。線段的編碼方式與 CV_HOUGH_STANDARD 的一致。
第四個(gè)參數(shù)表示與象素相關(guān)單位的距離精度。
第五個(gè)參數(shù)表示弧度測(cè)量的角度精度。
第六個(gè)參數(shù)表示檢測(cè)線段的最大條數(shù),如果已經(jīng)檢測(cè)這么多條線段,函數(shù)返回。
第七個(gè)參數(shù)與第三個(gè)參數(shù)有關(guān),其意義如下:
  對(duì)傳統(tǒng) Hough 變換,不使用(0).
  對(duì)概率 Hough 變換,它是最小線段長(zhǎng)度.
  對(duì)多尺度 Hough 變換,它是距離精度 rho 的分母 (大致的距離精度是 rho 而精確的應(yīng)該是 rho / param1 ).
第八個(gè)參數(shù)與第三個(gè)參數(shù)有關(guān),其意義如下:
  對(duì)傳統(tǒng) Hough 變換,不使用 (0).
  對(duì)概率 Hough 變換,這個(gè)參數(shù)表示在同一條線段上進(jìn)行碎線段連接的最大間隔值(gap), 即當(dāng)同一條線段上的兩條碎線段之間的間隔小于param2時(shí),將其合二為一。
  對(duì)多尺度 Hough 變換,它是角度精度 theta 的分母 (大致的角度精度是 theta 而精確的角度應(yīng)該是 theta / param2)。

示例程序:
hough.cpp

#include
#include
#include
#include
#include

using namespace std;

int main (int argc, char **argv)  
{     
        const char *pstrWindowsSrcTitle = "initial";
        const char *pstrWindowsLineName = "hough";

        IplImage *pSrcImage = cvLoadImage("hough.jpg", CV_LOAD_IMAGE_UNCHANGED);
       
        IplImage *pGrayImage =  cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);  
        cvCvtColor(pSrcImage, pGrayImage, CV_BGR2GRAY);

        IplImage *pCannyImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);  
        cvCanny(pGrayImage, pCannyImage, 30, 90);

        CvMemStorage *pcvMStorage = cvCreateMemStorage();  
        double fRho = 1;  
        double fTheta = CV_PI / 180;  
        int nMaxLineNumber = 50;        //最多檢測(cè)條直線
        double fMinLineLen = 50;        //最小線段長(zhǎng)度
        double fMinLineGap = 10;        //最小線段間隔
        CvSeq *pcvSeqLines = cvHoughLines2(pCannyImage, pcvMStorage, CV_HOUGH_PROBABILISTIC, fRho, fTheta, nMaxLineNumber, fMinLineLen, fMinLineGap);

        IplImage *pColorImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 3);
        cvCvtColor(pCannyImage, pColorImage, CV_GRAY2BGR);
        int i;
        for(i = 0; i < pcvSeqLines->total; i++)  
        {  
                CvPoint* line = (CvPoint*)cvGetSeqElem(pcvSeqLines, i);  
                cvLine(pColorImage, line[0], line[1], CV_RGB(255,0,0), 2);
          }
       
        cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_AUTOSIZE);  
        cvShowImage(pstrWindowsSrcTitle, pSrcImage);  
        cvNamedWindow(pstrWindowsLineName, CV_WINDOW_AUTOSIZE);  
        cvShowImage(pstrWindowsLineName, pColorImage);  

        cvWaitKey(0);  

        cvReleaseMemStorage(&pcvMStorage);  
        cvDestroyWindow(pstrWindowsSrcTitle);  
        cvDestroyWindow(pstrWindowsLineName);  
        cvReleaseImage(&pSrcImage);  
        cvReleaseImage(&pGrayImage);  
        cvReleaseImage(&pCannyImage);  
        cvReleaseImage(&pColorImage);  
        return 0;  
}

makefile:

INCLUDE = $(shell pkg-config --cflags opencv)  
LIBS = $(shell pkg-config --libs opencv)  
SOURCES = hough.cpp  
# 目標(biāo)文件  
OBJECTS = $(SOURCES:.cpp=.o)  
# 可執(zhí)行文件  
TARGET = hough  
$(TARGET)(OBJECTS)  
        g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)  
$(OBJECTS)(SOURCES)  
        g++ -c $(SOURCES)  
clean:  
        rm $(OBJECTS) $(TARGET)  
# 編譯規(guī)則 $@代表目標(biāo)文件 $< 代表第一個(gè)依賴文件  
%.o:%.cpp  
        g++ -I $(INCLUDE) -o $@ -c $<

所在文件夾上已有hough.jpg圖片,make后執(zhí)行./hough hough.jpg
【Rayeager PX2分享】OpenCV入門之線段檢測(cè)

感謝fjjjnk1234的分享
更多請(qǐng)參考:http://chipspark.com/


本文地址:http://m.qingdxww.cn/thread-149732-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美三级黄色大片| 欧美成人性色xxxx视频| 青青青青青青在线精品视频| 伊人精品久久久大香线蕉99| 伊人久久精品久久亚洲一区| 国产99久久久国产精品免费看 | 男同志在线观看| 最近中文字幕在线中文视频| 日本强不卡在线观看| 污视频免费在线观看| 香蕉精品视频| 99er4久久视频精品首页| 久久国产欧美日韩精品免费| 亚洲AV噜噜狠狠网址蜜桃尤物| 午夜激情在线| 日日噜噜夜夜狠狠久久丁香| 在线看欧美日韩中文字幕| 亚洲一区二区在线成人| 粉嫩小护士| 让人爽到湿的小黄书| 亚洲欧美视频二区| 日韩a在线观看免费观看| 依人在线| 99久久精品免费国产一区二区三区 | 天天综合天天操| 秋霞影院福利电影| 一本道mw高清码二区三区| 思思re| 亚洲国产高清视频在线观看| 欧美三级不卡在线观线看高清| 无羞耻肉动漫在线观看| 98久久人妻无码精品系列蜜桃| 天堂中文在线资源库用| 五月婷婷激情四射| 一本大道香蕉中文在线高清| 国产欧美另类久久久品| 最新国产麻豆精品| 日本五级床片全都免费播放| 中文字幕女教师julia视频| 一色屋精品免费视频 视频| 麻豆精品人妻一区二区三区蜜桃|