0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 3

Детектирование трещин на изображении

13.12.2012, 10:00. Показов 5706. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые господа и дамы.
Я нахожусь в критической ситуации, когда сам уже ничего не могу придумать и понять, а завершить работу надо.
Суть в том, что у меня есть серия фотографий (к сожалению весьма некачественных, но какие дали, с такими и работаю) материала (каучук) на котором со временем образуются трещины, фотографии делались на протяжении какого-то периода и видно развитие этих самых трещин. Так вот: мне надо обработать все эти фотографии и на каждой найти эти трещины, обвести их и вычислить их площадь, а я застрял на первом шаге - найти. Может быть у Вас будут какие-то идеи?
З.Ы. Ссылка с фотографиями - http://postimage.org/gallery/fdnefu2/ .
Заранее большое спасибо. Очень надеюсь на Вашу помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2012, 10:00
Ответы с готовыми решениями:

Детектирование текста на изображении, антиспам
Нужно определить есть ли на изображении текст или нет. На картинке может быть рекламная информация: телефоны, текст, что запрещено. ...

Появление трещин Acer Nitro 5
Всем привет. Вопрос владельцам nitro 5. У кого нибудь есть проблемы связанные появлением трещин в районе петель на топкейсе?

Механика разрушения, теория трещин
Добрый день! Кто может мне помочь разобраться в теме механика разрушения, теория трещин, а именно моделирование раскрытия трещины разрыва....

7
49 / 49 / 3
Регистрация: 07.12.2012
Сообщений: 201
Записей в блоге: 1
13.12.2012, 10:56
R G B кодировка черного 0 0 0.
Ну а теперь осталось дело за малым определиться со средним цветом фона и трещин и забить это все в if который будет в двух циклах и ... и еще ... и готово.
В общем идею подал сейчас нет времени вечером постараюсь что нибудь написать)
1
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
13.12.2012, 11:04
Выделить контуры трещин можно так:
Matlab M
1
2
3
4
5
6
7
Ic = imread('IMG_4762.jpg');
I = rgb2gray(Ic);
imshow(I)
 
BW1 = edge(I,'canny');
figure
imshow(BW1)
2
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
13.12.2012, 11:22
В функции edge можно выставить тип и уровень перехода (о чем говорил Hideo_Kuze)
Посмотреть подробней можно, если ввести в командной строке:
doc edge

А вот еще классная статья http://habrahabr.ru/post/114335/
Из нее можно вырвать кусок и применить к нашему случаю:
Matlab M
1
2
3
4
5
6
7
8
clear,clc
 
img = imread('IMG_4762.jpg'); % загружаем фото
grayimg = rgb2gray(img); % преобразуем
grayimg = imadjust(grayimg); % выравниваем яркость
bw = edge(grayimg,'canny',0.5); % выделяем контуры
bw = imfill(bw,'holes'); % заливаем замкнутые контуры
imshow(bw);


Здесь в строке 6 число 0.5 - это порог перехода, если поиграться с ним, то можно увидеть разную глубину трещин.

По поводу площади, то можно считать относительную площадь так:
S = sum(bw()/length(bw() % отношение площади белых элементов к общей площади изображения.
Сравнивая S для разных фотографий при одинаковом пороге, можно судить о изменении площади трещин.
2
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 3
13.12.2012, 11:55  [ТС]
Hideo_Kuze, Зосима, спасибо Вам большое!
Зосима, я пытался использовать edge, но так и не разобрался с этой функцией, в документации не смог найти чего-то, что помогло бы мне, спасибо за наглядный пример. Может быть порекомендуете какую-либо литературу по этой теме?
З.Ы. на тему округлостей вот альтернативный вариант, тоже интересный http://habrahabr.ru/post/114335/
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
13.12.2012, 12:59
Есть статейка - перевод на руский матлабовского хелпа ф-ции edge.
Но дело в том, что я с обработкой изображений в матлабе практически дела не имел и что-то еще подсказать не могу
0
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 3
13.12.2012, 19:03  [ТС]
Hideo_Kuze, если Вас не затруднит, не могли бы Вы пояснить подробнее, как можно реализовать тот алгоритм, о котором Вы говорите, я сам не разберусь, это что-то типа http://blogs.mathworks.com/ste... a-b-plane/ ?
0
49 / 49 / 3
Регистрация: 07.12.2012
Сообщений: 201
Записей в блоге: 1
14.12.2012, 03:43
То что я говорил походу является той же самой функцией edge только написанной в ручную.
Если раньше не разберетесь то часов в 10-11:30(Киевского времени) я этим займусь просто к сожалению нет возможности задержаться за компьютером. Я предлагаю пробегать последовательно все пиксели и там где R G B будет меньше чем среднее на картинке на определенное значение закрашивать красным и считать количеством таких пикселей потом соотнести их с количеством пикселей на всей картинки.

Добавлено через 8 часов 32 минуты
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function [im1,per] = zadcha(img,dt)
 
img=double(img);
sr=sum(sum(sum(img)))/prod(size(img)); %Находим средний оттенок изображения
sz=size(img);
p=0;
im1=img;
a=19;% Так как оттенок в углу практически равен оттетнку трещины пришлось 
b=429;%ограничить зону поиска
for n=a:1:b;
    for nn=1:1:sz(2);
        if sum(img(n,nn,:))<(sr-dt);%dt разница в оттенке трещины и среднего оттенка
           im1(n,nn,:)=[255,0,0]; %Закрашиваем красным трещины
            p=p+1; %находим их количество
       end
    end
       
end
per=(p/(sz(1)*(b-a)))*100; 
im1=uint8(im1);
image(im1);
per=roundn(per,-2);
text(sz(2)-60,sz(1)-25,sprintf('%%%g',per), 'BackgroundColor',[.7 .9 .7]) 
end
В командной строке "zadcha(img,-10);"
Ня!)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2012, 03:43
Помогаю со студенческими работами здесь

Детектирование ASK
Здравствуйте! Подскажите пожалуйста как определить пороговое напряжение для детектирования сигнала после амплитудной манипуляции.

Детектирование 0
Добрые люди, подскажите новичку: Есть китайский блок питания на 5 вольт, от которого планируется запитывать МК (схему по плате...

Детектирование прямоугольных объектов
watch.Reset(); watch.Start(); List&lt;MCvBox2D&gt; boxList = new List&lt;MCvBox2D&gt;(); //a box is a rotated rectangle ...

Детектирование движущихся объектов
Здравствуйте. Прошу помощи в реализации программы для обнаружения движущихся объектов на видео, поступающем непосредственно с камеры. Т.е....

Детектирование фазы сигнала
Всем привет! Учусь работать в Matlab и решил сделать фазовый детектор, пока для простых сигналов. Использую преобразование фурье, т.е...


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

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

Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru