




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
實驗二多邊形邊長測量一、實驗?zāi)康?掌握哈夫變換方法檢測直線的基本原理和步驟。習(xí)VB/VC/Matlab的基本概念、基本語法和編程方法,并熟練使用VB/VC/Matlab編寫遺傳算法程序。二、實驗設(shè)備微機三、實驗原理距離測量基本步驟:1)對定位距離的兩條直線進行識別和擬合。(關(guān)鍵步驟)2)得到直線方程后,根據(jù)數(shù)學(xué)方法計算兩線間的距離。兩種經(jīng)典的直線擬合(檢測)算法:最小二乘法、哈夫(霍夫)變換法直線函數(shù)極值原理::直線函數(shù)極值原理::y=ax+b,a、% 理 理吃皿一£三£乂b是待定常數(shù)a=^-理J=1最小二乘法可以方便、快速地求解直線方程0缺點:用一條直線上多點到另一條直線的距離平均值來近似計算.Hough變換[Hough,1962]是一種利用圖像全局特征將特定形狀的邊緣連接起來,形成連續(xù)平滑邊緣的一種方法。它通過將源圖像上的點映射到用于累加的參數(shù)空間,實現(xiàn)對已知解析式曲線的識別。由于Hough變換利用了圖像全局特性,所以受噪聲和邊界間斷的影響較小,比較魯棒
(Robust)oHough(Robust)o國如合的哈夫變換方法直線函數(shù):了‘猶?圖像空間XF:(為四直線函數(shù):了‘猶?圖像空間XF:(為四?參數(shù)空聞PQ:dq)?圖像空間中共線的點,對應(yīng)在參數(shù)空間中相交的線口?參數(shù)空間中相交于一點的所有直線,在圖像空間里都有共線的點I與之對應(yīng)O 第5章尺寸測量技術(shù)點一線對偶性:圖像空間XY中共線的點,對應(yīng)在參數(shù)空間PQ中相交的線。參數(shù)空間PQ中相交于一點的所有直線,在圖像空間XY里都有共線的點與之對應(yīng)。結(jié)論:在PQ平面上相交直線最多的點,對應(yīng)在XY平面上的直線就是解。
點―正弦曲線對偶:圖像空間中的點住亦)映射到,窿數(shù)空間直線的極坐標(biāo)方程:口xcos如sin。點―正弦曲線對偶:圖像空間中的點住亦)映射到,窿數(shù)空間直線的極坐標(biāo)方程:口xcos如sin。2空間rd:(乙次先(0,何,re(-R.R)尸co5/乃sin,y7缶心)&,%)r=x2cos0^y2sm0假設(shè):i)圖像上的直線是一個容器;2)直線上的點(圖像中的特定像素)是放在容器中的棋子。由于圖像上任一像素可以同時屬于多根直線,即可看成每個棋子(像素)可以同時放在多個容器中(直線)。Hough變換的基本思想:依次檢查圖像上的每個棋子(特定像素)。對每個棋子,找到所有包含它的容器(直線),并為每個容器的計數(shù)器加1。遍歷結(jié)束后,統(tǒng)計每個容器所包含的棋子數(shù)量。當(dāng)圖像上某個直線包含的特定像素足夠多時,就可以認(rèn)為直線存在?!鯤ough變換時,依次對像素4方進行處理像素力的處理結(jié)果:11、12、23、24等直線的計數(shù)器加1;像素£的處理結(jié)果:12、26、27、£8等直線的計數(shù)器加1;最終結(jié)果:除力2外,其余直線區(qū)域的計數(shù)器值均為1°■根據(jù)圖像大小設(shè)定閾值T,規(guī)定若某個直線計數(shù)器內(nèi)包含的特定像素數(shù)量aT,則認(rèn)為此直線存在。具體步驟:將r空間量化,得到二維矩陣M[r][];根據(jù)極坐標(biāo)表示法,r是直線到原點的距離。設(shè)圖像的對角線長度為n,固定左上角為原點,則r的取值范圍為[0,n]。令以1度為增量,則的取值范圍為[0,359]。此時,M是一個n行360列的二維矩陣。矩陣中任一元素M[r][]所存儲的值就是圖像中由參數(shù)(r,)決定的直線上所擁有的像素數(shù)。初始化時,矩陣M置為0。遍歷圖像,對像素(xi,yi),將的所有量化值和像素坐標(biāo)(xi,yi),依次代入直線的極坐標(biāo)方程,計算r的值,根據(jù)當(dāng)前r、,將對應(yīng)的累加器加1,即:M[r][]=M[r][]+1。分析M[r][],如果M[r][]T,就認(rèn)為存在一條有意義的線段,(r,)是該線段的擬合參數(shù)。T是一個非負整數(shù),由圖像中景物的先驗知識決定,與圖像大小有關(guān)。
由(r, )和(xi,yi)共同確定圖像中的線段,并連接斷裂部分。若將Hough變換得到的各直線計數(shù)器的值看作圖像的灰度,把用于存儲的二維數(shù)組看做像素矩陣,則可得到Hough變換的圖像口原灰度圖參數(shù)空間映射圖像原灰度圖四、預(yù)習(xí)要求.查閱資料,理解并掌握哈夫變換方法檢測直線的基本原理與步驟。.復(fù)習(xí)VB/VC/Matlab的基本概念、基本語法和編程方法。五、實驗內(nèi)容及步驟1..上機編寫程序,以“六邊形.bmp”為實驗對象,利用哈夫變換方法檢測出六邊形各邊邊長。程序代碼:#include"stdafx.h"#include"opencv2/highgui/highgui.hpp”#include"opencv2/imgproc/imgproc.hpp”#include<iostream>#include<stdio.h>usingnamespacecv;usingnamespacestd;
Matsrc,edges;Matsrc_gray;Matstandard_hough,probabilistic_hough;〃標(biāo)準(zhǔn)霍夫變換,概率的霍夫變換intmin_threshold=10;〃最小閾值為10intmax_trackbar=200;〃最大的跟蹤條為200char*standard_name="StandardHoughLinesDemo";char*probabilistic_name="ProbabilisticHoughLinesDemo";ints_trackbar=max_trackbar;intp_trackbar=max_trackbar;voidhelp();voidStandard_Hough(int,void*);voidProbabilistic_Hough(int,void*);intmain()(src=imread("六邊形.bmp”,1);if(src.empty())(help();return-1;}cvtColor(src,src_gray,CV_RGB2GRAY);Canny(src_gray,edges,50,200,3);namedWindow(standard_name,CV_WINDOW_AUTOSIZE);createTrackbar("Thresh",standard_name,&s_trackbar,max_trackbar,Standard_Hough);namedWindow(probabilistic_name,CV_WINDOW_AUTOSIZE);createTrackbar("Thresh",probabilistic_name,&p_trackbar,max_trackbar,Probabilistic_Hough);〃初始化Standard_Hough(0,0);Probabilistic_Hough(0,0);waitKey(0);return0;}voidhelp()(printf("\tHoughTransformtodetectlines\n");printf('\t \n");printf("Usage:./HoughLines_Demo<image_name>\n");}voidStandard_Hough(int,void*)(vector<Vec2f>s_lines;cvtColor(edges,standard_hough,CV_GRAY2BGR);〃用標(biāo)準(zhǔn)霍夫變換HoughLines(edges,s_lines,1,CV_PI/180,min_threshold+s_trackbar,0,0);〃顯示結(jié)果for(inti=0;i<s_lines.size();i++)(floatr=s_lines[i][0],t=s_lines[i][1];doublecos_t=cos(t),sin_t=sin(t);doublex0=r*cos_t,y0=r*sin_t;doublealpha=1000;Pointpt1(cvRound(x0+alpha*(-sin_t)),cvRound(y0+alpha*cos_t));Pointpt2(cvRound(x0-alpha*(-sin_t)),cvRound(y0-alpha*cos_t));line(standard_hough,pt1,pt2,Scalar(255,0,0),1,CV_AA);}imshow(standard_name,standard_hough);imwrite("六邊形.bmp”,standard_hough);}voidProbabilistic_Hough(int,void*)(vector<Vec4i>p_lines;cvtColor(edges,probabilistic_hough,CV_GRAY2BGR);〃用概率霍夫變換HoughLinesP(edges,p_lines,1,CV_PI/180,min_threshold+p_trackbar,30,10);〃顯示結(jié)果for(size_ti=0;i<p_lines.size();i++)(Vec4il=p_lines[i];line(probabilistic_hough,Point(l[0],l[1]),Point(l[2],l[3]),Scalar(255,0,0),1,CV_AA);}imshow(probabilistic_name,probabilistic_hough);imwrite("六邊形.bmp”,probabilistic_hough);}2..利用實驗一的Harris角點檢測程序,檢測“六邊形.bmp”中六邊形的各邊邊長。源程序:#include"stdafx.h"#include"opencv2/highgui/highgui.hpp”#include"opencv2/imgproc/imgproc.hpp”#include"opencv2\core\core.hpp”#include"opencv2\legacy\legacy.hpp”#include"opencv2\nonfree\nonfree.hpp”#include"opencv2\highgui\highgui.hpp”#include"opencv2\calib3d\calib3d.hpp”#include<vector>#include<iostream>#include<stdio.h>usingnamespacecv;usingnamespacestd;Matsrc,src_gray,dst_norm_scaled,src_copy;intthresh=0;intmax_thresh=100;intmaxCorners=0;intmaxTrackbar=50;//最大的跟蹤條為50char*source_window="Sourceimage";char*corners_window="Cornersdetected";//voidcornerHarris_demo(int,void*);//intmain()(src=imread("六邊形.bmp”,1);cvtColor(src,src_gray,CV_BGR2GRAY);〃建立一個窗口和跟蹤條namedWindow(source_window,CV_WINDOW_AUTOSIZE);createTrackbar("Harris”,source_window,&thresh,max_thresh,cornerHarris_demo);createTrackbar("ShiTomasi”,source_window,&maxCorners,maxTrackbar,cornerHarris_demo);namedWindow(corners_window,CV_WINDOW_AUTOSIZE);namedWindow(source_window,CV_WINDOW_AUTOSIZE);cornerHarris_demo(0,0);//waitKey(0);return(0);}voidcornerHarris_demo(int,void*)(src.copyTo(src_copy);Matdst,dst_norm;dst=Mat::zeros(src.size(),CV_32FC1);//intblockSize=2;intapertureSize=3;doublek=0.04;//cornerHarris(src_gray,dst,blockSize,apertureSize,k,BORDER_DEFAULT);//normalize(dst,dst_norm,0,255,NORM_MINMAX,CV_32FC1,Mat());convertScaleAbs(dst_norm,dst_norm_scaled);//for(intj=0;j<dst_norm.rows;j++)(for(inti=0;i<dst_norm.cols;i++)(if((int)dst_norm.at<float>(j,i)>thresh+60)(circle(dst_norm_scaled,Point(i,j),6,Scalar(0),-1,8,0);
circle(src_copy,Point(i,j),5,Scalar(255,0,0),-1,8,0);}}}if(maxCorners<1)maxCorners=1;}//vector<Point2f>corners;doublequalityLevel=0.01;doubleminDistance=10;booluseHarrisDetector=false;//Matcormat;//goodFeaturesToTrack(src_gray,corners,maxCorne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)活動策劃 -2024夏季暑期躺夏趣浪造浪計劃音樂節(jié)活動策劃方案
- 高效備考ACCESS考試的試題及答案指南
- 網(wǎng)絡(luò)技術(shù)職場競爭力提升的策略試題及答案
- 化工廠場地地租賃合同
- 借款合同到期續(xù)借合同
- 環(huán)保設(shè)備生產(chǎn)與銷售聯(lián)合開發(fā)合同
- 行政組織理論的協(xié)同治理模式試題及答案
- 外墻面裝飾工程施工合同
- 工業(yè)自動化控制理論實踐試題
- 開發(fā)商房子買賣合同
- 安徽省合肥八中2025屆高三最后一卷歷史試題及答案
- 計算機系統(tǒng)的故障與維護技巧試題及答案
- 領(lǐng)養(yǎng)貓合同協(xié)議書范本
- 【9語二模】2025年安徽合肥市第四十五中學(xué)中考二模語文試卷
- 2025年地理信息系統(tǒng)與應(yīng)用考試試題及答案
- 2025國家開放大學(xué)電大【信息管理概論】形考12答案 及 一體化終結(jié)性測試答案
- 河南省煙草專賣局(公司)筆試試題2024
- 中國文化概論知識試題及答案
- 煙臺購房協(xié)議書
- 2025年中考生物模擬測試卷及答案
- 中國經(jīng)導(dǎo)管主動脈瓣置換術(shù)臨床路徑專家共識(2024版)解讀
評論
0/150
提交評論