Я написал программу обработки изображений в MATLAB, которая активно использует MATLAB Image Processing Toolbox, особенно морфологические операции (imopen, imclose), а также imadjust. Мы также много выполняем операции сплайна и medfilt2 и medfilt1.
У нас есть клиент, который хочет, чтобы мы конвертировали эту программу в Java. Я хотел бы услышать подробное описание библиотеки обработки изображений Java, которая может дублировать функциональность MATLAB в обработке изображений и сплайнах, особенно в том, как интерфейс сравнивается с MATLAB.
Я читал о Java Advanced Image Processing Library, но мне не удалось найти в Интернете подробную документацию. Кроме того, небольшая документация, о которой я читал, кажется, указывает на то, что она использует довольно сложную модель изображений, объединяя их в плитку и так далее. Было бы здорово, если бы была библиотека Java, которая позволила мне продолжать обрабатывать изображения с серой шкалой только как 2D или 3D-массивы.
Кроме того, было бы замечательно узнать о любых общих ошибках при конвертации между 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:
Обратите внимание, что мы занимаемся установкой спинного хребта - используя данную точку, подходящую для сплайна, чтобы решить, устранить ли ее - поскольку данные messy, у нас есть многоступенчатое устранение точки процесс, поэтому сплайны являются интегральной частью алгоритма. Итак, поскольку я вообще не могу найти упоминания о сплайнах в JAI, так что, если кто-нибудь знает библиотеку java, предлагающую минимально-квадратный сплайн, это было бы замечательно.
Изменить 2.5: Мы используем аппроксимацию наименьших квадратов набора точек с использованием сплайнов с фиксированным числом узлов (0-5 узлов). Если мы должны повторить это, все станет очень рискованным, так как сейчас мы используем библиотеку MATLAB для нее.
И мы, конечно же, не хотим пересматривать алгоритм. Было трудно получить что-то, что сработало...