I am working on crops images and want to detect some random pattern from binary image. As in following image want to detect only the area in yellow circle. So how it can be done any algorithm or direct technique? Thanks for you support.

1 回表示 (過去 30 日間)
  5 件のコメント
Greg Heath
Greg Heath 2017 年 11 月 19 日
I don't know how to do it. However, the obvious difference is the average color level of the surrounding pixels
Hope this helps.
Greg
Asif Ameer
Asif Ameer 2017 年 11 月 19 日
well Greg Thanks for your response! But what if I can draw centerline in crop row and then perform some sliding window operation to scan image around this center line and color all these pixels those have been scanned by sliding widow and then perform color based threshold to remove that color area pertaining to crop rows?

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

採用された回答

Image Analyst
Image Analyst 2017 年 11 月 19 日
I'd use bwareaopen() or bwareafilt() to get blobs that are small. Large blobs will be the big crop rows. Of course when the plants are very young it would be hard to tell between a small wheat plant and a small weed. However John Deere has farm machines that drive over the crop rows and use deep learning to spray only the weeds, so it is a solved problem, and probably one that has patents on the concept.
  3 件のコメント
Asif Ameer
Asif Ameer 2017 年 11 月 19 日
or simply creating mask of of crop rows and then segment that all the portion of original binary image by applying mask?
Image Analyst
Image Analyst 2017 年 11 月 19 日
If the rows are not solid vertically, like the plants are still small and growing, then you can get a vertical projection and look for high mean. then threshold to find the rows. Little weeds in between the rows will not be above the threshold.
horizontalProfile = sum(binaryImage, 1);
wheatColumns = horizontalProfile > someValue;
Then you can use regionprops() to find the centroid of the wheatColumns, and again on the original binary image to find the center of all the blobs. Then filter the binary image to accept only those blobs within some x distance of the wheat column centroids. Blobs in between those would be weed blobs and will be not chosen. That's how I'd proceed for cases where the lanes are not solid from top to bottom, like is the case for small, young plants.
I don't see how edge detection would help at all.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImage Segmentation and Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by