Порой возникает необходимость сделать что — то простое, но муторное, которое до тебя делали многие, и при этом, не хочется на этом месте изобретать велосипед.
Очень большой функционал по обработке изображений, статистики, мат. выражений, матриц и т.д., например, имеет пакет Matlab, и для выполнения части курсовой или диплома можно воспользоваться некоторыми его функциями, интегрируя его с каким-нибудь языком, например, с C#. Остается лишь вопрос как это сделать?
1) Необходимо в самом Matlabe создать m — функцию, набор команд выполняющих определенную задачу, сохраненную в виду скрипта.
Например, рассмотрим, m — функцию, которая бинаризует изображение
2) В командном окне Matlaba вводим deploytool;
3) Открывается Deployment Tool, в котором можно выбрать создание нового проекта Matlab builder for .Net;
4) Добавляем в него наш m — файл и делаем построение проекта, это процесс долгий;
5) После чего открываем студию, создаем новый проект (C#);
6) К этому проекту можно добавить связь (Add Reference), где мы выбираем .dll, созданную Matlab;
7) Точно так же добавляем MWArray.dll и не забываем написать using MathWorks.MATLAB.NET.Arrays;
8) Пишем в коде
где untitled1-название проекта, собранное Matlab
9) И чудо, после этого в binimg — оказывается наше бинаризованное изображение и с ним можно делать, что угодно. Преобразовывать к различным встроенным типам или к bitmap.
Таким образом, написав немного строк в Matlab и добавив пару связей в C# можно с легкостью решить многие задачи и подзадачи.
Но стоит помнить, что все это будет работать достаточно медленно, поэтому если вам не безразлична скорость, то лучше не поленится и сделать все самому в C#.
Очень большой функционал по обработке изображений, статистики, мат. выражений, матриц и т.д., например, имеет пакет Matlab, и для выполнения части курсовой или диплома можно воспользоваться некоторыми его функциями, интегрируя его с каким-нибудь языком, например, с C#. Остается лишь вопрос как это сделать?
1) Необходимо в самом Matlabe создать m — функцию, набор команд выполняющих определенную задачу, сохраненную в виду скрипта.
Например, рассмотрим, m — функцию, которая бинаризует изображение
function[binimg] = newgetinfo(filename)
img = imread(filename);
%Бинаризация по порогу 0.5
%и вывод полученного бинарного изображения на экран.
binimg = im2bw(I, 0.5);
end
2) В командном окне Matlaba вводим deploytool;
3) Открывается Deployment Tool, в котором можно выбрать создание нового проекта Matlab builder for .Net;
4) Добавляем в него наш m — файл и делаем построение проекта, это процесс долгий;
5) После чего открываем студию, создаем новый проект (C#);
6) К этому проекту можно добавить связь (Add Reference), где мы выбираем .dll, созданную Matlab;
7) Точно так же добавляем MWArray.dll и не забываем написать using MathWorks.MATLAB.NET.Arrays;
8) Пишем в коде
untitled1.untitled1class a = new untitled1.untitled1class();
MWArray arrIn = "C:/filename.tif";
MWArray[] binimg = a.mymorf(1, arrIn);
где untitled1-название проекта, собранное Matlab
9) И чудо, после этого в binimg — оказывается наше бинаризованное изображение и с ним можно делать, что угодно. Преобразовывать к различным встроенным типам или к bitmap.
Таким образом, написав немного строк в Matlab и добавив пару связей в C# можно с легкостью решить многие задачи и подзадачи.
Но стоит помнить, что все это будет работать достаточно медленно, поэтому если вам не безразлична скорость, то лучше не поленится и сделать все самому в C#.