Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
1 / 1 / 0
Регистрация: 04.07.2013
Сообщений: 30
1

Как удалить области на изображении

12.02.2014, 12:50. Показов 2618. Ответов 2
Метки нет (Все метки)

Добрый день!
Подскажите в чем ошибка. Мне нужно удалить на изображении области, для которых эксцентриситет эллипса меньше 0,9. Изображение после обработки остается без изменений.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
A=imread('1bb.jpg');
bw = rgb2gray(A);
adap=im2bw(bw, 0.5);      % бинарное изображение
[L, num]=bwlabel(adap, 8);
% Вычисление признаков объектов: 
feats=regionprops(L, 'Eccentricity');
Eccen=[feats.Eccentricity];
NREccen=length(Eccen);
n=find(Eccen<0.9); 
% удаляем области
x=size(L);
for i=1:x(1) 
  for j=1:x(2) 
        if L(i, j)==n L(i, j)=0; 
        end;
    end;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2014, 12:50
Ответы с готовыми решениями:

Как на изображении задать кликабельные области
Подскажите как VB 2010 сделать на JPG изображении области при нажатии на которые присходили...

Выделение области на изображении
Здравствуйте! У меня в приложении есть PictureBox. Мне нужно организовать выделение фрагмента...

Поиск области интереса на изображении
Подскажите алгоритм с помощью которого можно найти прямоугольник на картинке с последующей его...

Выделение области на изображении, работа с образами
Есть два автомобиля, один оснащен камерой, второй - любой впередиидущий атомобиль. Во время...

__________________
2
5142 / 3480 / 356
Регистрация: 02.04.2012
Сообщений: 6,387
Записей в блоге: 16
12.02.2014, 13:44 2
Жаль, только что картинку не выложила
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clear,clc
 
A=imread('1bb.jpg');
bw = rgb2gray(A);
adap=im2bw(bw, 0.5);      % бинарное изображение
[L, num]=bwlabel(adap, 8);
% Вычисление признаков объектов: 
feats = regionprops(L, 'Eccentricity','PixelIdxList');
Eccen = [feats.Eccentricity];
id = find(Eccen<0.9); % индексы областей, которые нужно удалить
subplot(121),imshow(L),title('до')
% удаляем области
for i=1:length(id)
    L( feats( id(i) ).PixelIdxList ) = 0;
end
subplot(122),imshow(L),title('после')
Суть в том, что мы не только находим эксцентриситеты, но и индексы пикселей PixelIdxList, которые потом обнуляем где нужно
1
1 / 1 / 0
Регистрация: 04.07.2013
Сообщений: 30
13.02.2014, 09:23  [ТС] 3
Большое спасибо за помощь, все работает отлично!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2014, 09:23

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Кнопка удалить на изображении
У меня выбираются картинки, далее из надо показать. Надо дать возможность их удаления, для этого в...

Как удалить абзацы, которые расположены в области колонтитулов
Ребят, подскажите, пожалуйста, каким образом можно удалить абзацы, которые сидят в области...

Как удалить "Компьютер" из области переходов
Как удалить &quot;Компьютер&quot; только из области переходов проводника? Если в разделе...

Как заставить перемещаться скролинг области, когда переходишь на строчку 'ниже' видимой части области?
Помогите, кто чем может!!! Суть проблемы: Некие данные в в виде таблички выводятся в область ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.