Hi sir,
I want to enter this mask given below to 288*543.
288*543 contains initially 1000 as non object and 0 as object.
To that I have to enter this mask,
mask=[1.414,1,1.414; 1,1,1000; 1000,1000,1000];
and I need to apply this algorithm,
d_new(i,j)=min([d_new(i,j);1+d_new(i+1,j); 1.41+d_new(i+1,j+1);1+d_new(i,j+1);1.41+d_new(i-1,j+1)]);
and i need to update the values by d_new(i,j)
How can I achieve this in for loop.
Thanks in advance.

 採用された回答

Image Analyst
Image Analyst 2014 年 10 月 24 日

0 投票

Do you mean to replicate the mask out to a size of 288-by-543? Like this:
workspace;
% Initial 3-by-3 mask.
mask=[1.414,1,1.414; 1,1,1000; 1000,1000,1000]
% Make copies out to a size of 288-by-543
mask2 = repmat(mask, [96, 181]);

1 件のコメント

Image Analyst
Image Analyst 2014 年 10 月 24 日
Regarding your edited question and new "Answer" (which is the same as your question now, and I'll probably delete)...your mask is 3-by-3 (9 elements) whereas your "algorithm" only has 5 elements. How do you reconcile that?

サインインしてコメントする。

その他の回答 (1 件)

vetri veeran
vetri veeran 2014 年 10 月 24 日

0 投票

Hi sir,
I want to enter this mask given below to 288*543.
288*543 contains initially 1000 as non object and 0 as object.
To that I have to enter this mask,
mask=[1.414,1,1.414; 1,1,1000; 1000,1000,1000];
and I need to apply this algorithm,
d_new(i,j)=min([d_new(i,j);1+d_new(i+1,j); 1.41+d_new(i+1,j+1);1+d_new(i,j+1);1.41+d_new(i-1,j+1)]);
and i need to update the values by d_new(i,j)
How can I achieve this in for loop.
Thanks in advance.

カテゴリ

ヘルプ センター および File Exchange で Author Block Masks についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by