色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x

【Rayeager PX2分享】OpenCV入門之線段檢測

發(fā)布時(shí)間:2015-5-26 11:39    發(fā)布者:穿prada的008
關(guān)鍵詞: opencv
線段檢測主要運(yùn)用Hough變換,Hough變換是圖像處理中從圖像中識別幾何形狀的基本方法之一,應(yīng)用很廣泛,也有很多改進(jìn)算法。主要用來從圖像中分離出具有某種相同特征的幾何形狀(如,直線,圓等)。最基本的霍夫變換是從黑白圖像中檢測直線(線段)。
在OpenCV編程中,實(shí)現(xiàn)線段檢測主要使用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 變換(如果圖像包含一些長的線性分割,則效率更高)。它返回線段分割而不是整個(gè)線段。每個(gè)分割用起點(diǎn)和終點(diǎn)來表示。
  CV_HOUGH_MULTI_SCALE - 傳統(tǒng) Hough 變換的多尺度變種。線段的編碼方式與 CV_HOUGH_STANDARD 的一致。
第四個(gè)參數(shù)表示與象素相關(guān)單位的距離精度。
第五個(gè)參數(shù)表示弧度測量的角度精度。
第六個(gè)參數(shù)表示檢測線段的最大條數(shù),如果已經(jīng)檢測這么多條線段,函數(shù)返回。
第七個(gè)參數(shù)與第三個(gè)參數(shù)有關(guān),其意義如下:
  對傳統(tǒng) Hough 變換,不使用(0).
  對概率 Hough 變換,它是最小線段長度.
  對多尺度 Hough 變換,它是距離精度 rho 的分母 (大致的距離精度是 rho 而精確的應(yīng)該是 rho / param1 ).
第八個(gè)參數(shù)與第三個(gè)參數(shù)有關(guān),其意義如下:
  對傳統(tǒng) Hough 變換,不使用 (0).
  對概率 Hough 變換,這個(gè)參數(shù)表示在同一條線段上進(jìn)行碎線段連接的最大間隔值(gap), 即當(dāng)同一條線段上的兩條碎線段之間的間隔小于param2時(shí),將其合二為一。
  對多尺度 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;        //最多檢測條直線
        double fMinLineLen = 50;        //最小線段長度
        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入門之線段檢測

感謝fjjjnk1234的分享
更多請參考:http://chipspark.com/


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

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

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表