Comments 5
UFO just landed and posted this here
Был такой пост: https://habrahabr.ru/post/220869/
-1
Этими же средствами можно построить и вычислитель координат. Вот пример отслеживания координат объекта (26х36 пикселей) в кадре 320х240, практически, с частотой загрузки кадров (1/33 мс) оператором snapshot(cam).
![](https://habrastorage.org/r/w1560/files/55c/c93/f00/55cc93f00bb64e9295177041de463318.png)
Рис. Результаты отслеживания координат объекта при изменении черных зон и разворотах.
Увеличение точности в зоне меньшей кадра (с известными координатами) можно получить применением корреляционных методов.
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;
![](https://habrastorage.org/files/55c/c93/f00/55cc93f00bb64e9295177041de463318.png)
Рис. Результаты отслеживания координат объекта при изменении черных зон и разворотах.
Увеличение точности в зоне меньшей кадра (с известными координатами) можно получить применением корреляционных методов.
0
Похоже я пропустил объявление об открытии «недели курсовиков и лабораторок на Хабре»
0
Очень, очень плохо.
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 вежливые, они часто пишут в конце хелповой статьи ссылки на литературу. Хелпы бывают трех типов, в максимальной расширенном или в аппноуте ссылка на статью/книгу обычно есть.
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 вежливые, они часто пишут в конце хелповой статьи ссылки на литературу. Хелпы бывают трех типов, в максимальной расширенном или в аппноуте ссылка на статью/книгу обычно есть.
+2
Sign up to leave a comment.
Система распознавания отображаемых данных объекта