フィルターのクリア

Edges in wheat leaves

3 ビュー (過去 30 日間)
David David
David David 2019 年 9 月 2 日
編集済み: Image Analyst 2019 年 9 月 3 日
I am trying to find the edges in these leaves. However due to shadow and other nuances normal edge detectors do not work very well.
I have tried a laplacian filter however it does not give back the results I hoped for. I would like to separate overlapping leaves as well though I do not need it to be 100% foolproof. The following code gives me a good idea of the edges however I still need to refine it more.
img=imread("path_to_image");
h=fspecial("laplacian",[3000000 0],10.0);
B=imfilter(img,h);
C=imsubtract(img,B);
imshow(B);
figure;imshow(C);
  2 件のコメント
Image Analyst
Image Analyst 2019 年 9 月 2 日
Why do you need the edges? What is your overall goal? For example to find the amount of green growth in the scene? So you think you need to count the blades of grass? If so, a simple way to get the area fraction of green would be just as good, or even better, and much, much simpler.
David David
David David 2019 年 9 月 2 日
find out the number of leaves there are and using probability find an estimate for how many plants there are. It is not necessary to separate the background leaves.

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

採用された回答

Image Analyst
Image Analyst 2019 年 9 月 2 日
With this field of view, you cannot know, because there are plants outside the field of view whose leaves are in the field of view, and conversely there are plants inside the scene whose leaves are outside the scene. Plus there may be plants in the scene that are mostly or totally obscured by leaves and thus not visible at all.
Plus with such a small field of view, your statistics will be very inaccurate. You can't just take that one small field and extrapolate the answer out to a whole farm many acres in size.
If you back up and take a larger scene when the leaves are not so big that they blend into neighboring plants, then you'd have a better chance at counting plants.
I still think the color fraction of green is your best bet. It will correlate very well with the number of plants. First you'd build a calibration table where you manually count the number of plants and then find its green fraction. Do this at several time points if you need to, or want to, take snapshots at different times. Then for a given time, and given green fraction, you just look up the number of plants from your calibration lookup table.
Try a search of VisionBib to get papers on crop analysis.
  7 件のコメント
David David
David David 2019 年 9 月 2 日
It doesn't really matter what I want to do with the information. I will use an image from an area(1/2 m^2) and try to determine the amount of plants there are by tracking the leave down to its roots. I don't need to find more than one leaf per plant. The image which I showed at the beginning is only an approximation of the image that I will use but I consider it good enough however if you deem this problem impossible I will not persist.
Image Analyst
Image Analyst 2019 年 9 月 3 日
編集済み: Image Analyst 2019 年 9 月 3 日
I deem it impossible with the image you have supplied. I have 40 years of image analysis experience and do it as a full time job, and sometimes what you want or think you want is just not attainable so you have to try to measure other things that will still let you move ahead with your research. That's why I'm suggesting alternative approaches that will probably give you the information you really need.

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by