Python: вырезать область из изображения вдоль границ

1

Какие функции (и как их использовать) следует использовать для обрезки центральной части этого изображения? Я хочу взять только менее плотные части, а не плотные границы.

Спасибо!

В конце концов, я хочу либо подсчитать крошечные круги/точки (ячейки) в областях, либо рассчитать площадь менее плотных частей, обозначенных на втором изображении. Я уже делал это с помощью ImageJ, прослеживая область вручную, но это очень утомительный процесс с большим количеством изображений.

оригинал

Прослеживается область

В настоящее время я смотрю на Scipy, но они большие, и я не знаю, как подойти к этому. Если бы кто-то указал мне в правильном направлении, это было бы здорово!

  • 0
    Обрезка должна иметь изогнутую границу или вы можете приблизить ее в виде прямоугольника? Что касается пузырей, вы можете проверить библиотеку OpenCV. В OpenCV есть несколько функций для обнаружения блобов, которые вы можете автоматически определять пузыри.
Теги:
image-processing
image
scipy
analysis

1 ответ

1

Мне понадобилось немного больше времени, чтобы сделать это на Python, но я попробовал несколько идей только в командной строке с ImageMagick, который установлен на большинстве дистрибутивов Linux и доступен бесплатно для macOS и Windows.

Во-первых, я обрезал изображение, чтобы избавиться от постороннего мусора:

Изображение 174551

Затем я сделал следующие шаги:

  • отказаться от канала альфа/прозрачности
  • преобразовать в оттенки серого, поскольку нет никакой полезной информации о цвете,
  • нормализованный, чтобы растянуть контрастность и сделать все пиксели в диапазоне 0-255,
  • порог для поиска ячеек
  • заменили каждый пиксель на средний их окружающий 49x49 пикселей (размытие ящика)
  • снова пороговое значение при 90%

Эта команда выглядит так: Terminal/Command Prompt:

convert blobs.png -alpha off -colorspace gray -normalize -threshold 50% -statistic mean 49x49 -threshold 90%  result.png

Результат:

Изображение 174551

Если этот подход выглядит многообещающим для ваших других фотографий, мы можем быстро разработать версию Python, поэтому дайте мне знать.

Конечно, если вы знаете другую полезную информацию о своем изображении, которая может помочь улучшить ситуацию... может быть, вы знаете, что плотность всегда выше по краям, например.


Если кто-то хочет увидеть промежуточные шаги, вот изображение после серого масштабирования и нормализации:

Изображение 174551

И вот после размытия:

Изображение 174551

  • 0
    Марк, я не могу воспроизвести ваш результат из вашей команды, используя IM 6.9.10.10 Q16 Mac OSX. Возможно, вы что-то забыли или изменили какие-либо значения из того, что написали. В исходном вводе также есть внешняя белая рамка, которую, возможно, потребуется удалить.
  • 0
    @ fmw42 Извините, да - я забыл об этом, потому что я вышел и сделал что-то еще в середине ответа. Исходное изображение было плохо обрезано. Я добавлю обрезанный для вас, чтобы играть.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню