Creating a rectangle image by using an user defined function

I am trying to create a rectangle image as you see but I have a problem with the equation part of the rectangle. Can anyone help to fix this up? Thank you in advance.
function outimg = RectIm(x, y)
SizeX = 256;
SizeY = 256;
[C, R] = meshgrid(1:SizeX, 1:SizeY);
centerX = 128;
centerY = 128;
rectangle = (R - centerY/2)*(C - centerX/2) <= x*y ;
outimg=image(rectangle);
colormap([0 0 0.4; 1 1 1]);
end

 採用された回答

Walter Roberson
Walter Roberson 2018 年 5 月 18 日

1 投票

rectangle = (R - centerY/2).*(C - centerX/2) <= x*y ;
This is not going to define a rectangle, though: it is going to define a hyperbola.
Perhaps you want
rectangle = abs(R - centerY/2) <= y/2 & abs(C - centerX/2) <= x/2 ;

1 件のコメント

Mert Aygün
Mert Aygün 2018 年 5 月 18 日
編集済み: Mert Aygün 2018 年 5 月 18 日
This is almost what I want. Except, I would like the put the rectangle in the middle of the image. Therefore, the code should be
rectangle = abs(R - centerY) <= y/2 & abs(C - centerX) <= x/2 ;
Thank you.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeImage Processing Toolbox についてさらに検索

質問済み:

2018 年 5 月 18 日

編集済み:

2018 年 5 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by