Определение количества нитей на тканевом изображении


12

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

образец изображения

Я пытаюсь определить пряжу, взяв сумму столбцов и строк за деформации и уток соответственно, но это не похоже на работу, потому что изображение не очень хорошо сфокусировано и резкое. Также метод очень чувствителен к выравниванию нитей в ткани.

Пожалуйста, предложите лучший алгоритм, если возможно, для обнаружения пряжи. Кроме того, если есть возможность сделать пряжу прямо для каждого захваченного изображения. Я пробовал IMROTATE, но он создает черные области на изображении, что мешает сумме строк, и алгоритм терпит неудачу.

Любая помощь в этом отношении будет очень полезна для меня. Благодарю.


Используйте БПФ. Это домашнее задание?
— эндолит

Да, преобразование Фурье, вероятно, является правильной отправной точкой. Это "вытянет" регулярность изображения из нечеткости. Не уверен, как справиться с частичным вращением, хотя. Возможно, вы могли бы преобразовать полосы и отметить их фазу, а затем определить, были ли соседние полосы смещены влево или вправо.
— Даниэль Р Хикс

Ответы:


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.