How to extract a specific region in matlab ?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I know the four coordinates of a trapezium or rectangle.Now i want to only extract this region and other things should be black. How can i do that ?
My test image
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/165505/image.png)
I want to do like this image:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/165508/image.png)
0 commentaires
Réponses (1)
Image Analyst
le 25 Juin 2017
Pass the coordinates into poly2mask() and use bsxfun() to mask
% Get the dimensions of the image. numberOfColorChannels should be = 3.
[rows, columns, numberOfColorChannels] = size(rgbImage);
% Create mask
mask = poly2mask(x, y, rows, columns);
% Mask the image using bsxfun() function
maskedRgbImage = bsxfun(@times, rgbImage, cast(mask, 'like', rgbImage));
2 commentaires
Image Analyst
le 25 Juin 2017
Because if you leave it out,
[rows, columns, numberOfColorChannels] = size(rgbImage);
columns will be the number of columns times the number of color channels. For a full explanation, see http://blogs.mathworks.com/steve/2011/03/22/too-much-information-about-the-size-function/
Alternatively you could accept the size into a single variable, which will then be a vector but then to get the rows and columns, you will have to add an index 1 or 2 respectively:
% Get the dimensions of the image. numberOfColorChannels should be = 3.
imageSize = size(rgbImage);
% Create mask
mask = poly2mask(x, y, imageSize(1), imageSize (2));
% Mask the image using bsxfun() function
maskedRgbImage = bsxfun(@times, rgbImage, cast(mask, 'like', rgbImage));
I think the way I had it first is easier to understand. You could use ~ instead of numberOfColorChannels if you want:
[rows, columns, ~] = size(rgbImage);
Voir également
Catégories
En savoir plus sur Convert Image Type dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!