Вот описание моей проблемы:
- Изображение является двоичным (0 и 1), где одно значение представляет собой области стека (ячейки), а другое — фон.
< /li>
Когда я просматриваю бинарное изображение, ячейки отображаются правильно сегментированными. Однако когда я рассчитываю покрытие поверхности путем подсчета соответствующих пикселей (0 или 1), результат всегда оказывается ниже ожидаемого.
- Я проверил двоичное изображение, проверив уникальные значения и применив анализ гистограммы. На гистограмме изображения видны два пика, близкие к 0 и 255, что говорит о том, что изображение действительно двоичное.
- Я пробовал использовать адаптивный порог, глобальный порог и заполнение дыр, но эти методы дали результат. либо неправильно подсчитано количество пикселей, либо не удалось повысить точность покрытия.
- Непосредственный подсчет пикселей с интенсивностью, представляющей стеки (например, 0 или 255), дает процент ниже ожидаемого.
li>
Вот фрагмент кода, который я использую для расчета покрытия поверхности:
Код: Выделить всё
def calculate_surface_coverage(binary_image, stack_value=0):
Код: Выделить всё
stack_pixel_count = np.sum(binary_image == stack_value)
Код: Выделить всё
total_pixels = binary_image.size
Код: Выделить всё
surface_coverage = (stack_pixel_count / total_pixels) * 100
Код: Выделить всё
return surface_coverage
Код: Выделить всё
surface_coverage = calculate_surface_coverage(binary_image, stack_value=0)
Код: Выделить всё
print(f"Surface Coverage: {surface_coverage:.2f}%")
Подробнее здесь: https://stackoverflow.com/questions/791 ... despite-co