Виявлення кількості ниток на зображенні тканини


12

Я початківець користувач в обробці зображень і працюю над проектом, щоб визначити кількість ниток на зображенні тканини, тобто основи та качки (перпендикулярні та паралельні нитки до осі x).

зразок зображення

Я намагаюся виявити нитки, взявши суму стовпців і рядків для основи і качка відповідно, але це, здається, не працює, тому що зображення не дуже добре зосереджене і чітке. Також метод значно чутливий до вирівнювання ниток в тканині.

Будь ласка, запропонуйте кращий алгоритм, якщо це можливо для виявлення ниток. Крім того, якщо є можливість зробити пряжу прямою для кожного знятого зображення. Я спробував IMROTATE, але це створює чорні області в зображенні, які порушують суму рядків, і алгоритм виходить з ладу.

Будь-яка допомога в цьому плані буде для мене дуже вагомою. Дякую.


Використовуйте FFT. Це домашнє завдання?
ендоліт

Так, перетворення Фур'є, ймовірно, є правильною відправною точкою. Це б "витягнуло" регулярність зображення з нечіткості. Не знаю, як впоратися з частковим обертанням. Можливо, ви могли б перетворити смуги і відзначити їх фазу, а потім визначити, чи суміжні смуги косяться ліворуч або праворуч.
Даніель Р Хікс

Відповіді:


9

Перетворення фур'є дасть вам період будь-яких періодичних особливостей на зображенні - наприклад, він скаже вам, що є подія структури 3 пікселя по горизонталі та 5 пікселів по вертикалі, з цього і за шкалою пікселів ви можете обчислити кількість ниток


3

Деякі коди в Mathematica:

i = ColorNegate@Import@"http://i.stack.imgur.com/Jlhgw.jpg";
i3 = DeleteSmallComponents[Binarize[i, .4], 10];
lines = ImageLines[i3, .6];
Show[i, Graphics[{Thick, Orange, Line /@ lines}]]
(*y coord mean increments at x=0 *)
b = Mean@Differences@ Sort[(#[[2, 1]] #[[1, 2]] - #[[1, 1]] #[[2, 2]])/(#[[1,1]] - #[[2, 1]]) & /@ lines];
(*mean slope*)
a = Mean[-(-#[[1, 2]] + #[[2, 2]])/(#[[1, 1]] - #[[2, 1]]) & /@ lines];
(*Threads*)
- a ImageDimensions[i3][[1]]/b 
(*yarns*)
2 ImageDimensions[i3][[2]]/b

Результат>

введіть тут опис зображення

34.5541
27.2259


1
Було б добре, якщо ви поясните, що ви робите в цьому коді.
Абід Рахман К
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.