How to find the dimensions of a specific area in an existing image?

1 次查看(过去 30 天)
Say I'm given an image with a rectangular space made entirely of green pixels. I want to find the dimension of that area that is made entirely of green pixels.
This is what I have so far:
numGreenPixels=img(:,:,1)==0 & img(:,:,2)==255 & img(:,:,3)==0
numGreenPixels = sum(numGreenPixels(:));
this would only given me the total number of green pixels, when I need to find the dimension of said space. How do I go about this?
  2 个评论
KSSV
KSSV 2019-4-9
when I need to find the dimension of said space.
YOu can find the dimensions if you can arrange the data into a matrix form......is your green region a square/ rectangle? If it is taking some other irregular shape, how you will specify the dimensions?

请先登录,再进行评论。

回答(1 个)

KSSV
KSSV 2019-4-9
编辑:KSSV 2019-4-9
In that case......the length of unique of x,y should give you the dimensions. You have numGreenPixels as a matrix of 0 and 1's.
[y,x] = find(numGreenPixels) ;
If it is not clear attach your image.
  1 个评论
Alexander West
Alexander West 2019-4-9
function refrigerator(fridge,picNeed)
img=imread(picNeed)
background=imread(fridge);
r=(img(:,:,1))
g=(img(:,:,2))
b=(img(:,:,3))
numGreenPixels=img(:,:,1)==0 & img(:,:,2)==255 & img(:,:,3)==0
[y,x] = find(numGreenPixels) ;
background=imresize(background,[x,y])
[w,r] = strtok(fridge,'.')
newFile= ['decorated_' w r]
imwrite(img,newFile)
end
Doing this returns an error with the resize function? Logically, it should work right?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Read, Write, and Modify Image 的更多信息

标签

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by