[英]how to move a rectangle over a image in matlab
我是Matlab的新手
現在我正在研究光盤定位
在這里,我的第一步是創建兩個特征圖,然后我必須創建一個矩形並將矩形在第一張特征圖中從左向右移動,寬度為30,矩形的高度為圖像高度
在第二個特征圖中,我將矩形從上到下移動
第三步是在矩形的每個位置,我必須計算總和並繪制總和值並獲得兩個圖
現在我已經使用了nlfilter,其寬度和尺寸與矩形的寬度和尺寸相同,但是我無法獲得答案,請幫助我,這是我的代碼
final2=edgediff./eror;
figure,image((final2));
title('Feature MAP 1');
func = @(x) sum(x(:));
B = nlfilter(final2,[30 600],func);
如果您正在研究光盤的定位,我想您實際上是在水平和垂直方向分別進行了兩次卷積。 實際上,使用線性函數sum
的事實表明您不需要非線性濾波器函數nlfilter
。 考慮將conv2
與ones(ncols, nrows)
使用。
像這樣:
[width, height] = size(featureMap1);
box = ones(30, height);
smoothFeatureMap1 = conv2(featureMap1, box, 'same');
重復上述步驟,但使用box = ones(width, 30)
smoothFeatureMap2
box = ones(width, 30)
來獲取smoothFeatureMap2
。
然后,您可以將兩個平滑特征圖加在一起。
但是說實話,我認為也許您想要的只是一個2D卷積的結果,而不是其他兩個卷積的結果。 從這個問題很難確定。 特別是我不知道要在兩個圖中繪制什么。 (如果您使問題更清楚,我將嘗試更新此答案)。
您可以從圖像處理工具箱使用imrect放置矩形並獲取其坐標:
H = imrect(axes, position);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.