Главная страница
Навигация по странице:

  • Загрузить в рабочую среду Matlab файл с цветным изображением VariantX.jpg, где X – номер варианта. Изучить изображение и выполнить с помощью функций Matlab его предварительную обработку

  • Преобразовать изображение в бинарное. Выделить на изображении номер автомобиля и сохранить его в отдельный файл.

  • На изображении с номером автомобиля найти и выделить все контуры символов.

  • Написать алгоритм эквализации контуров. Проверить его работу на найденных в п.3. контурах.

  • Написать алгоритм нахождения ВКФ контуров. Проверить его работу на эквализованных контурах из п.4. Реализация АКФ

  • Реализация ВКФ

  • Изучение методов обработки изображений в контурном анализе


    Скачать 1.68 Mb.
    НазваниеИзучение методов обработки изображений в контурном анализе
    Дата21.05.2021
    Размер1.68 Mb.
    Формат файлаdocx
    Имя файлаBorodkin_laba4_2.docx
    ТипДокументы
    #208185

    О Т Ч Е Т
    по лабораторной работе №4

    по дисциплине
    «Методы и алгоритмы обработки данных и изображений»

    на тему
    Изучение методов обработки изображений в контурном анализе.

    Студент гр. А-01м-16 Белов Е.Ю.
    Преподаватель Бородкин А.А.





    Москва

    2016

    1. Загрузить в рабочую среду Matlab файл с цветным изображением VariantX.jpg, где X – номер варианта. Изучить изображение и выполнить с помощью функций Matlab его предварительную обработку


    Исходное изображение:



    Изучив изображение можно сделать вывод о том, что нао применять медианную фильтрацию, т.к. шумом являются белые точки.

    Результат медианной фильтрации:



    Результат обработки изображения:


    1. Преобразовать изображение в бинарное. Выделить на изображении номер автомобиля и сохранить его в отдельный файл.


    С помощью функций увеличения и поворота изображения получили изображение номера автомобиля:



    1. На изображении с номером автомобиля найти и выделить все контуры символов.


    Контуры отмечены красным:



    1. Написать алгоритм эквализации контуров. Проверить его работу на найденных в п.3. контурах.


    Реализация:

    clear;

    [image map] = imread('rect1.jpg');

    I = rgb2gray(image);

    BW1= edge(I);

    BW = dither(BW1);

    imshow(BW);

    B=bwboundaries(BW,'holes');

    Xvect(1)=0;

    Yvect(1)=0;

    for k = 1:1

    boundary = B{k,1};

    for i = 1:length(boundary)-1

    Xvect(k,i)=boundary(i+1,1)-boundary(i,1);

    Yvect(k,i)=boundary(i+1,2)-boundary(i,2);

    Vect(k,i)=Xvect(k,i)+j*Yvect(k,i);

    end

    end

    k1=length(Vect);

    r=1;

    p=50;

    eps=0;

    for i=1:k1

    eps=eps+abs(Vect(1,i));

    end

    eps = eps/p;

    n=1;

    ost=Vect(1,n);

    while r<=p

    if eps<=abs(ost)

    e(r)=ost/abs(ost);

    ost=ost-e(r);

    r=r+1;

    else

    t=0;

    sum=0;

    while eps>abs(ost)+sum

    t=t+1;

    sum=0;

    for j1=1:t

    sum=sum+abs(Vect(1,n+j1));

    end

    end

    abs_isp=abs(eps)-abs(ost)-sum;

    isp=Vect(1,n+t)*abs_isp/abs(Vect(1,n+t));

    % isp=Vect(1,n+t)-sum+

    %betta = subspace(sum,Vect(1,n+t));

    %gamma = asin(abs(sum)*sin(betta)/eps);

    %alpha = pi - (betta+gamma);

    % if(alpha==pi || alpha==0)

    % abs_DC = sqrt(eps*eps + abs(sum)* abs(sum) - 2*abs(sum)*eps*1);

    % else

    % abs_DC = sqrt(eps*eps + abs(sum)* abs(sum) + 2*abs(sum)*eps*cos(alpha));

    % end

    % DC = Vect(1,n+t)*abs_DC/abs(Vect(1,n+t));

    %isp = Vect(1,n+t)-DC;

    sum1=0+0*j;

    for i1=1:t-1

    sum1=sum1+Vect(1,n+i1);

    end

    e(r)=ost+isp+sum1;

    ost=Vect(1,n+t)-isp;

    r=r+1;

    n=n+t;

    end

    end

    boundary = B{1,1};

    figure;

    k1=length(e);

    for ii = 1:k1

    v(ii)=0;

    for i = 1:k1

    iii=ii-1;

    if iii+i>k1

    iii=iii-k1;

    end

    v(ii)=v(ii)+real(e(i))*real(e(iii+i))+imag(e(i))*imag(e(iii+i))+j*(imag(e(i))*real(e(iii+i))-real(e(i))*imag(e(iii+i)));

    end

    v1(ii)=abs(v(ii));

    end

    plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2);

    sumX=0;

    sumY=0;

    sumX1=0;

    sumY1=0;

    koord(1,1)=0;

    koord(1,2)=0;

    koord1(1,1)=0;

    koord1(1,2)=0;

    for i=2:length(e)

    sumX=sumX+real(e(i-1));

    sumY=sumY+imag(e(i-1));

    koord(i,1)=sumX;

    koord(i,2)=sumY;

    end

    summa=Vect(1);

    for i=2:length(Vect)

    sumX1=sumX1+real(Vect(i-1));

    sumY1=sumY1+imag(Vect(i-1));

    koord1(i,1)=sumX1;

    koord1(i,2)=sumY1;

    summa=summa+Vect(i);

    end

    %koord(length(e)+1,1)=koord(1,1);

    %koord(length(e)+1,2)=koord(1,2);

    figure

    plot(koord(:,1), koord(:,2),'-b');

    hold on

    plot(koord1(:,1), koord1(:,2),'-r');




    Проверка на фигурах:






    1. Написать алгоритм нахождения ВКФ контуров. Проверить его работу на эквализованных контурах из п.4.


    Реализация АКФ:

    k1=length(e);

    for ii = 1:k1

    v(ii)=0;

    for i = 1:k1

    iii=ii-1;

    if iii+i>k1

    iii=iii-k1;

    end

    v(ii)=v(ii)+real(e(i))*real(e(iii+i))+imag(e(i))*imag(e(iii+i))+j*(imag(e(i))*real(e(iii+i))-real(e(i))*imag(e(iii+i)));

    end

    v1(ii)=abs(v(ii));

    end

    Реализация ВКФ:

    k1=length(e2);

    for ii = 1:k1

    v2(ii)=0;

    for i = 1:k1

    iii=ii-1;

    if iii+i>k1

    iii=iii-k1;

    end

    v2(ii)=v2(ii)+real(e2(i))*real(e2(iii+i))+imag(e2(i))*imag(e2(iii+i))+j*(imag(e2(i))*real(e2(iii+i))-real(e2(i))*imag(e2(iii+i)));

    end

    v12(ii)=abs(v2(ii));

    end




    написать администратору сайта