Когда вы вызываете .smooth()
на improc
, этот вызов изменяет данные изображения, содержащиеся в ImageProcessor
, которые отображаются оригиналом ImagePlus
. Затем вы создаете новый ImagePlus
на основе того же ImageProcessor
, поэтому, конечно, это размытое изображение, а не оригинал. Если вы не хотите, чтобы оригинал был изменен, вы можете продублировать ImageProcessor
перед сглаживанием, например, изменив строку:
ImageProcessor improc = imp.getProcessor();
... до:
ImageProcessor improc = imp.getProcessor().duplicate();
Обновление: когда я тестировал ваш код, я видел оба изображения размытыми. Если вы по-прежнему видите исходные изображения, попробуйте добавить следующее в конец метода запуска:
imp.updateAndDraw()
alter.updateAndDraw()