Как стать автором
Обновить

Комментарии 5

НЛО прилетело и опубликовало эту надпись здесь
Этими же средствами можно построить и вычислитель координат. Вот пример отслеживания координат объекта (26х36 пикселей) в кадре 320х240, практически, с частотой загрузки кадров (1/33 мс) оператором snapshot(cam).

clear all

load ('target_image_art');  % 36х26 uint8
% figure, imshow(target_image);
dX = size(target_image,2); 26 pixels
dY = size(target_image,1); 36 pixels

Img_eroding = 100; % average between screen and target intensity
 
cam = webcam(1);
cam.Resolution = '320x240';
 
for i = 1:1000
    pct = snapshot(cam); 
    Img=rgb2gray(pct); % rgb in gray    
    
    Img_edge_enhacement=imsubtract(Img,Img_eroding); % negative result of subtract is replaced by zero 
    Img_lgc=logical(Img_edge_enhacement); % '0' if pixel = 0; '1' if pixel > 0 
    %figure, imshow(Img_lgc); 
 
    Img_inv_lgc = not(Img_lgc); % inversion
    Img_inv_flt_lgc = bwareaopen(Img_inv_lgc,500); % remove 'island' being less than 500 pixels
 
    Iprops=regionprops(Img_inv_flt_lgc,'BoundingBox','Image'); % find remained 'islands'
    
    % format: Iprops(i).BoundingBox(:) = [X,Y,dX,dY]
    obj_num = find(arrayfun(@(x)max(x.BoundingBox(3)),Iprops)< 50 & ... % max(dx)
                   arrayfun(@(x)min(x.BoundingBox(3)),Iprops)> 10 & ... % min(dx)
                   arrayfun(@(x)max(x.BoundingBox(4)),Iprops)< 60 & ... % max(dy)
                   arrayfun(@(x)min(x.BoundingBox(4)),Iprops)> 20);     % min(dy)
    % display target                    
    if ~isempty(obj_num) 
        X = Iprops(obj_num(1)).BoundingBox(1);
        Y = Iprops(obj_num(1)).BoundingBox(2)+11;
        if X+dX < 320 && Y+dY < 240 
            % target iside the screen 
            target_area =  [X,Y,dX-1,dY-1];
            Imf = insertShape(pct, 'Rectangle', target_area, 'Color', 'green');
            image(Imf);
        else
            % target in screen boarder
            image(pct);
        end            
    else
        % no target found
        image(pct);
    end
end
clear cam;


Рис. Результаты отслеживания координат объекта при изменении черных зон и разворотах.

Увеличение точности в зоне меньшей кадра (с известными координатами) можно получить применением корреляционных методов.
Похоже я пропустил объявление об открытии «недели курсовиков и лабораторок на Хабре»
Очень, очень плохо.
1. Плохо написано с точки зрения текста.
Научная работа — это логически непротиворечивый и последовательный текст. Разделы и абзацы должны логически вытекать друг из друга. В тексте должны присутствовать завязка, кульминация и развязка, желательно (но не обязательно для научпопа) ещё перечисление действующих лиц и моралитэ. Для статей они называются соответственно introduction, results и conclusion, опциональные — materials@methods и discussion. По Вашему вступлению я не понял, о чем вообще работа и зачем она была проделана, ну и кондовый канцелярит. Потом описание встроенных функций матлаб, на 1-2 строчки, без объяснения, при чём тут они. Потом материалы и методы, и ещё раз, вдобивочку, повторение функций. И примеры в конце. Состыкуйте всё это в текст.
2. Новизна?
Примерно всё то же самое писали в Digital image processing using MATLAB (Гонзалес, Эддингс, Вудс) и Журавель (см. материалы на matlab.exponenta.ru). Не менее 10 лет назад, на секундочку. Эддингс вежливый, он тоже не претендовал на новизну и давал ссылки на работы конца 80х.
3. MatLAB
Пишется MATLAB. Я не знаю, у кого в компании MathWorks в 84м был маленький член, но все буквы в названии заглавные и английские. Ладно, хотите использовать своё написание — в путь. Но одно какое-нибудь выберите, а не все 4, встречающиеся в тексте.
4. Code
Оформляйте код с помощью тега code, тогда там будут псевдоцвета и форматирование. Не гоняйте циклы в MATLAB, используйте логическое индексирование, (cell/struct/array)fun и bsxfun. Так правда значительно быстрее работает, а по памяти MATLAB уже давно не выбивает.
5. Список литературы
Нерецензируемые источники, дублирующиеся ссылки, косые ссылки… Весь набор. Ребята из MATLAB вежливые, они часто пишут в конце хелповой статьи ссылки на литературу. Хелпы бывают трех типов, в максимальной расширенном или в аппноуте ссылка на статью/книгу обычно есть.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории