how to select a specified region in an image based on location and calculate its area

7 Ansichten (letzte 30 Tage)
I want to calculate the area of the material included in each pucket?
  2 Kommentare
Image Analyst
Image Analyst am 26 Dez. 2014
What is the material, and what is a pucket?
The lighting is very bad. Try to improve it and your task will be a LOT easier.
See my File Exchange for several image segmentation demos http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
helwan ghgs
helwan ghgs am 26 Dez. 2014
Thanks for your interest in answering me.
The material is sand, and the bucket is the lifter used to carry the material and then cascading it (make it fall) vertically.
I want to write a simple code to calculate the vertical area of the material carried by each bucket. and I want to define each bucket location by its angular position. i.e. the first bucket at the left down side where the angle said to be zero (horizontal) and then the next one at angle 30 from the horizontal.....
I tried to use imageJ software first to make filtration but it failed because I found the logic selection in bw all white?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Mohammad Abouali
Mohammad Abouali am 26 Dez. 2014
use p=roipoly() to draw a polygon around the area you want to measure it's area.
then the area would be sum(p(:))*pixelsize^2 if you want to automate this, then you need to first write a code that detects those region that you want.
  2 Kommentare
helwan ghgs
helwan ghgs am 26 Dez. 2014
Thanks for your interest in answering me.
The material is sand, and the bucket is the lifter used to carry the material and then cascading it (make it fall) vertically.
I want to write a simple code to calculate the vertical area of the material carried by each bucket. and I want to define each bucket location by its angular position. i.e. the first bucket at the left down side where the angle said to be zero (horizontal) and then the next one at angle 30 from the horizontal.....
I tried to use imageJ software first to make filtration but it failed because I found the logic selection in bw all white?
helwan ghgs
helwan ghgs am 28 Dez. 2014
But, I want matlab to draw such polygons autmatically by detecting the sand color which is yellow......and do not how?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 26 Dez. 2014
I don't know what/where the bucket is, what/where the sand is, and where the shadows are. The lighting is horrible and could definitely be improved. Plus who's idea was it to have a sand-colored background when you want to find sand pouring in front of it?!?! The disc thing should be black or at least some contrasting color. I'd fix all that first since it's far easier to design an image analysis algorithm if you have a good image to start with.
  11 Kommentare
helwan ghgs
helwan ghgs am 1 Jan. 2015
no Sir., may be you have missunderstanding with my problem. Area_1 is the area of a specific region selected by the ROIPOLY in each image file so it should be a matrix of values equals to the number of files processed. Thanks alot I think I can handel it, thanks again for your interesting to help me with my problem. I will cite your file exchange weblink in my work (but it seems it return to name" Image Analyst" I donot know do you perefer this name for citing or you can give your real name?). and sure I will be back for you any question maybe you can help. Wish you a very happy new year
Image Analyst
Image Analyst am 1 Jan. 2015
Bearbeitet: Image Analyst am 1 Jan. 2015
You said "I need Area_1 to be a matrix of the number of the number of image files being processed. " A matrix is a 2D array and I already saw that you were using that equation for one of them so I figured the second column would be the "number" like you asked for. But now it seems like you just want a row or column vector (1-D array) rather than a matrix. To get that, simply index Area_1 with filesProcessed. Don't use k because some k's may be skipped if there is no image for that k.
Area_1(filesProcessed) = (d_1 / b) * 1963.5;
You don't need to credit me specifically in your work but maybe you can just say something like "I wish to thank the volunteers in the MATLAB Answers forum for their helpful guidance and suggestions" or something similar.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by