在一個矩陣中 畫出各個角度的線 |
答題得分者是:richtop
|
walalabu
一般會員 發表:4 回覆:3 積分:1 註冊:2005-06-03 發送簡訊給我 |
各位板友們好
想請教一個我苦思一個晚上不得其解的問題 假設現在我要在一個paintbox中的某一個矩形區域
假設這個矩形區域中有一個binary或彩色的影像
若我想用我設定的任一角度
以一定間隔畫線對這個矩形區域做掃描
來判定每一條直線上的Pixel是否有值
請問這應該如何辦到呢?
我用小畫家示意一下
由於每個角度 應該從哪一個邊開始畫 很難判定
乘一個theta角後 最後會落在哪個邊也很難判斷
而且只能掃描矩形中的區域
又假設畫出來後 應該用直線方程式來判斷影像中是否有值嗎?
還是有其他方法可以判斷呢?
|
limeca
中階會員 發表:2 回覆:74 積分:60 註冊:2005-05-11 發送簡訊給我 |
|
walalabu
一般會員 發表:4 回覆:3 積分:1 註冊:2005-06-03 發送簡訊給我 |
不好意思 我再簡述一下我的問題跟我失敗的做法好了 我將原文那張圖轉成binary影像
所以只有茶裏王的部分是1 其他部分是0
然後我希望用我指定的角度(例如30度)
畫出固定間隔的多條直線(假設160條)
對方框中的PIXELS做掃描
掃描出這些直線上 各有多少個點是1(表示有偵測到茶裏王) EX.直線1上面 有30個boolpixels
直線2上面 有25個boolpixels
.
.
.
到直線160 然後將這些直線上各有掃描到多少點 存到一個size[160]的矩陣中 我簡述一下我失敗的做法... 如上圖
我在兩個頂點畫我想要傾斜的角度的直線
並找到兩條線的方程式 ax+y+b1=0 ax+y+b2=0 之後我在這兩條直線中 找出相同間隔且平行的160條直線
然後把binary影像的pixel[x][y]代進去這些方程式裡面
看是否符合ax+b+c=0 但這樣做以失敗告終
因為代進去幾乎不可能等於0
所以我找不到每一條直線上正確的點個數 因此想請教一下大家有什麼想法即可
coding的部分我自己可以做到
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
walalabu 您好: 有兩個建議請參考:
1. 可不可以將圖形先旋轉您要的角度(直線與水平方向的夾角),如此便能用水平(或垂直)的方式來判斷。
2. 或者就是指定角度來找出線上所有的點,其實就是指定兩端點畫一直線,只是找線的方法要自己寫,那麼您要的座標就能找出來了。 關於找線的部分,我之前有個程式您參考看能不能幫上忙? < href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=53803">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=53803 RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====#####
|
limeca
中階會員 發表:2 回覆:74 積分:60 註冊:2005-05-11 發送簡訊給我 |
|
walalabu
一般會員 發表:4 回覆:3 積分:1 註冊:2005-06-03 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
walalabu 您好:
引言: 至於第二個方法其實我也試過了 您的程式我之前也看過了 主要是因為矩形長寬不一 而且角度太多 要找到線的起始點跟終點在哪個邊上也很困難 要考慮的情形太多了其實問題應該沒有您想像的複雜。 可以利用截距去調每條線的位置! 簡單討論供您參考一下。 直線方程式:y=mx b, m:斜率,b:截距(與y軸的交點) 1) 與x軸(y=0)的交點:x=-b/m; 2) 與y軸(x=0)的交點:y=b; 3) 與x=w的交點:y=mw b; 4) 與y=h的交點:x=(h-b)/m; RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
walalabu
一般會員 發表:4 回覆:3 積分:1 註冊:2005-06-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |