全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2285
推到 Plurk!
推到 Facebook!

求向量角度?

答題得分者是:kenjigan
susamlin2001
一般會員


發表:15
回覆:7
積分:4
註冊:2010-06-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-01-26 01:29:45 IP:125.224.xxx.xxx 訂閱
請問各位大哥大姊,我把圖得到的向量利用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-02-10 14:42:01 IP:163.28.xxx.xxx 訂閱
算各線的斜率 y=ax+b
求出各線在平面的角度

各線的角度差應該就是你要的
------
=========================
Kenji Gan
系統時間:2017-12-15 2:42:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!