簡體   English   中英

如何在matlab中的圖像上移動矩形

[英]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 考慮將conv2ones(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM