Deteksi jumlah benang pada gambar fabric

12

Saya adalah pengguna pemula dalam pemrosesan gambar dan bekerja pada suatu proyek untuk menentukan jumlah benang dalam gambar kain yaitu warps dan wefts (benang tegak lurus dan paralel ke sumbu x).

contoh gambar

Saya mencoba untuk mendeteksi benang dengan mengambil jumlah kolom dan baris untuk lungsin dan pakan masing-masing tetapi tampaknya tidak berfungsi karena gambar tidak terlalu fokus dan tajam. Juga metode ini jauh lebih sensitif terhadap pelurusan benang dalam kain.

Silakan usulkan algoritma yang lebih baik jika memungkinkan untuk deteksi benang. Juga jika ada kemungkinan untuk membuat benang lurus untuk setiap gambar yang diambil. Saya telah mencoba IMROTATE tetapi menciptakan wilayah hitam pada gambar yang mengganggu jumlah baris dan algoritma gagal.

Setiap bantuan dalam hal ini akan sangat berarti bagi saya. Terima kasih.


sumber
Gunakan FFT. Apakah ini pekerjaan rumah?
endolith
Ya, transformasi Fourier mungkin adalah titik awal yang benar. Itu akan "menarik" keteraturan gambar dari kekaburan. Namun, tidak yakin bagaimana menangani rotasi parsial. Mungkin Anda bisa mengubah garis-garis dan mencatat fase mereka, kemudian menentukan apakah garis-garis yang berdekatan miring ke kiri atau kanan.
Daniel R Hicks

Jawaban:

9

Transformasi fourier akan memberi Anda periode fitur periodik apa pun dalam gambar - mis. Ia akan memberi tahu Anda ada acara struktur 3 piksel secara horizontal dan 5 piksel secara vertikal, dari sini dan skala piksel Anda dapat menghitung jumlah benang

Martin Beckett
sumber
3

Beberapa kode dalam 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

Hasil>

masukkan deskripsi gambar di sini

34.5541
27.2259

Belisarius
sumber
1
Alangkah baiknya jika Anda menjelaskan apa yang Anda lakukan dalam kode ini.
Abid Rahman K