求向量角度? |
答題得分者是:kenjigan
|
susamlin2001
一般會員 發表:15 回覆:7 積分:4 註冊:2010-06-26 發送簡訊給我 |
請問各位大哥大姊,我把圖得到的向量利用hough transform找出兩條直線後,該怎麼計算出這兩條直線的角度是多少?以下是用opencv寫出來的hough transform程式會得到兩條線,該怎麼計算這兩條線的角度??例如以手來比喻:右手平行為一條線是0度,而左手向上傾斜45度為另一條線是135度,而中間的夾角麻煩各位高手指導該怎麼計算!謝謝!
[code cpp] IplImage* src = cvLoadImage( "1.bmp", 0 ); CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* lines = 0; #if 0 lines = cvHoughLines2( src, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 100, 0, 0 ); for(int i = 0; i < MIN(lines->total); i ) { float* line = (float*)cvGetSeqElem(lines,i); float rho = line[0]; float theta = line[1]; CvPoint pt1, pt2; double a = cos(theta), b = sin(theta); double x0 = a*rho, y0 = b*rho; pt1.x = cvRound(x0 1000*(-b)); pt1.y = cvRound(y0 1000*(a)); pt2.x = cvRound(x0 - 1000*(-b)); pt2.y = cvRound(y0 - 1000*(a)); cvLine( src, pt1, pt2, cvScalar( (100), (0), (0)), 5, CV_AA, 0 ); } #else lines = cvHoughLines2( src, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 67, 30, 10 ); for(int i = 0; i < lines->total; i ) { CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i); cvLine( src, line[0], line[1], cvScalar( (100), (0), (0)), 5, CV_AA, 0 ); } #endif cvNamedWindow( "Source", 1 ); cvShowImage( "Source", src ); cvWaitKey(0); }[/code] 編輯記錄
susamlin2001 重新編輯於 2011-01-25 11:46:35, 註解 無‧
|
kenjigan
一般會員 發表:2 回覆:4 積分:6 註冊:2004-08-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |