I have 6 points as shown in the picture above.
Can I make a closed contour from the 6 points as shown below?
I've tried to use creating ellipse and imfill() but they didn't work.
Thank you.

 Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 23 Apr. 2020
Bearbeitet: Ameer Hamza am 23 Apr. 2020

1 Stimme

Try this
im = im2double(imread('image.jpeg'));
im_gray = rgb2gray(im);
im_gray = imbinarize(im_gray)*1;
[r,c] = find(im_gray==1);
points = [c r];
p = convhull(points);
points = points(p, :).';
poly_points = points(:).';
im_gray = insertShape(im_gray, 'FilledPolygon', poly_points, ...
'Color', [1 1 1], ...
'Opacity', 1, ...
'SmoothEdges', false);
imshow(im_gray);

7 Kommentare

Yohanes Setiawan
Yohanes Setiawan am 24 Apr. 2020
Thank you for your response.
Why r, c being [c r] in points?
Yohanes Setiawan
Yohanes Setiawan am 24 Apr. 2020
Bearbeitet: Yohanes Setiawan am 24 Apr. 2020
Anyway, I haven't had Computer Vision Toolbox :'(
I'm using MATLAB R2018b
This code use image processing toolbox
im = im2double(imread('image.jpeg'));
im_gray = rgb2gray(im);
im_gray = imbinarize(im_gray)*1;
[r,c] = find(im_gray==1);
points = [c r];
p = convhull(points);
points = points(p, :);
im_gray = roipoly(im_gray, points(:,1), points(:,2));
imshow(im_gray);
Yohanes Setiawan
Yohanes Setiawan am 24 Apr. 2020
Thanks!
I've installed new version of MATLAB which has Computer Vision Toolbox.
Then I'm running your code and get this error:
Error using insertShape
Expected input number 1, I, to be one of these types:
uint8, uint16, int16, double, single
Instead its type was logical.
Ameer Hamza
Ameer Hamza am 24 Apr. 2020
Can you show your code?
Yohanes Setiawan
Yohanes Setiawan am 24 Apr. 2020
It has been solved!
I changed into double and WORKED!
Thank you so much for your help.
Ameer Hamza
Ameer Hamza am 24 Apr. 2020
I am glad to be of help.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by