Я написал программу обработки изображений в MATLAB, которая интенсивно использует MATLAB Image Processing Toolbox, особенно морфологические операции (imopen, imclose), а также imadjust. Мы выполняем много операций подгонки сплайнов, а также много medfilt2 и medfilt1.
У нас есть клиент, который хочет, чтобы мы преобразовали эту программу в Java. Я хотел бы услышать подробное описание библиотеки обработки изображений Java, которая может дублировать функциональные возможности MATLAB в обработке изображений и сплайнах, особенно то, как интерфейс сравнивается с MATLAB.
Я читал о библиотеке расширенной обработки изображений Java, но мне не удалось найти в ней никакой подробной документации. Кроме того, небольшая документация, которую я читал об этом, указывает на то, что она использует довольно сложную модель изображений, объединяя их в плитки и так далее. Было бы замечательно, если бы была библиотека Java, которая позволяла бы мне продолжать обрабатывать изображения в оттенках серого как просто двумерные или трехмерные массивы.
Кроме того, было бы здорово узнать о каких-либо общих хитростях при конвертации между MATLAB и Java.
Редактировать: наше приложение в настоящее время сегментирует изображения относительно простого объекта.
Это:
1. Starts with a 3D matrix of gray scale image slices representing a single area
2. Does a medfilt1 to even out each slice.
3. Does some imopen, imclose and imadjust operations on the image to remove some fuzziness,
4. Does some simple thresholding in various areas to find boundary points
5. Fits splines to the boundary points,
6. Uses the 3rd dimension in various ways to further perfect the point matching, especially using medfilt2.
7. Saves each slice with the boundary splines written in color on it.
Следует отметить, что мы выполняем «подгонку сплайнов», а не сопоставление сплайнов - подгонка сплайнов - это наименьшее квадратное совпадение с фиксированным числом узлов - сопоставление сплайнов точно совпадает с точками с произвольным числом узлов. Я бы не хотел реализовывать сопоставление сплайнов из более простых функций сплайнов.
MATLAB Builder JA - это вариант, но я хотел бы также знать, что доступно в чистой Java, а также узнать, какие накладные расходы включает в себя Builder JA.
Редактировать 2:
Обратите внимание, что мы выполняем подгонку позвоночника - используя подгонку заданной точки к сплайну как способ решить, следует ли ее устранить - поскольку данные грязные , у нас есть многоэтапный процесс удаления точек, поэтому сплайны являются интегральной частью алгоритма. И так, поскольку я вообще не могу найти упоминания о сплайнах в JAI, поэтому, если кто-нибудь знает библиотеку Java, предлагающую подгонку сплайнов по методу наименьших квадратов, это было бы замечательно.
Редактировать 2.5: Мы используем аппроксимацию набора точек методом наименьших квадратов, используя сплайны с фиксированным числом узлов (0-5 узлов). Если нам придется заново реализовать это, все будет рискованно, поскольку сейчас мы используем библиотеку MATLAB.
И мы, конечно же, не хотим пересматривать алгоритм. Было достаточно сложно получить что-то, что сработало ...