Свертка изображения с ядром товарного вагона в jython для Фиджи

Я пытаюсь выполнить некоторую обработку изображений на Фиджи с помощью jython, и у меня возникли проблемы. Я пытаюсь разработать плагин, в котором изображение сворачивается ядром товарного вагона. Записав макрос, я получаю следующее, которое можно вставить в скрипт jython:

run («Свернуть ...», «text1 = [0,04 0,04 0,04 0,04 0,04 \ n0,04 0,04 0,04 0,04 0,04 \ n0,04 0,04 0,04 0,04 0,04 \ n0,04 0,04 0,04 0,04 0,04 \ n0,04 0,04 0,04 0,04 0,04 \ n] ");

где text1 - строка, используемая для свертки. Однако проблема в том, что плагин требует, чтобы пользователь мог определять размер ядра товарного вагона. Таким образом, я не могу жестко прописать это в скрипте. Кто-нибудь знает, как действовать. Я открыт для альтернативных методов, если конечным результатом будет свертка товарного вагона.

заранее большое спасибо


person user1938799    schedule 31.12.2012    source источник


Ответы (2)


Вы можете создать строку, которая динамически представляет ядро ​​в jython для заданного size и передайте его как параметр в

imagej сам макроязык.

args=split(getArgument);
size = args[0];
// for loop to create kernel
run("Convolve...", "text1=&kernel");
person trashgod    schedule 06.01.2013

Спустя годы, но для потомков:

Глядя на API ImageJ, можно фактически вызвать класс Convolver () с необходимыми аргументами.

Например:

from ij import IJ
from ij import ImagePlus
from ij.plugin.filter import Convolver

imp = IJ.openImage("http://imagej.nih.gov/ij/images/blobs.gif")
ip = imp.getProcessor()
kernel = [1.0, 2.0, 1.0, 
          0.0, 0.0, 0.0, 
          -1.0, -2.0, -1.0]

Convolver().convolve(ip, kernel, 3, 3)

out = ImagePlus("convolved", ip)
out.show()

Запрашивать у пользователя входной список ядер должно быть произвольно.

person Jorik van Rijn    schedule 16.06.2020