Вы взяли это изображение из демонстрации риса , поставляемой с инструментарием обработки изображений MATLAB . Если вы прочитаете демо, у вас уже есть код, который будет отдельно изолировать каждое рисовое зерно - так было создано изображение.
Что касается подсчета количества зерен, имеющих определенный цвет, таких как желтый или зеленый, еще раз прочитайте демонстрацию: ясно, что зерна риса не окрашены небольшим набором отдельных цветов, таких как желтый или зеленый (или оранжевый или розовый). Скорее, цвета рисовых зерен были специально созданы таким образом, чтобы они были равномерно распределены по всей карте цветов spring
.
Таким образом, чтобы приступить к выполнению вашей задачи, вам нужно будет дать некоторое определение «желтого» или «зеленого», возможно, с точки зрения нахождения в определенном диапазоне значений RGB.
Сделав это, вы можете затем использовать переменную labeled
(которая создана для вас в демоверсии) вместе с командой regionprops
, чтобы получить список пикселей, которые находятся внутри каждой границы рисового зерна. Просто сравните эти пиксели с вашими определениями желтого или зеленого, и вы на месте.