Как мне найти искажение / аномалию в текстурированном изображении с помощью обработки изображений? - PullRequest
1 голос
/ 02 августа 2020

Рассмотрим следующие image1 и image2. У обоих есть недостатки. Мой подход заключался в том, чтобы использовать матрицу GLCM и использовать такие свойства, как энергия или несходство, чтобы найти искажение. Ниже приведена часть кода, который я использовал.

 stepSize = w
(w_width, w_height) = (w, w) # window size
for y in range(0, image.shape[0]-w, stepSize):
    u=u+1
    for x in range(0, image.shape[1]-w, stepSize):
      k=k+1
      print(k)
      
      window = image[y:y + w, x:x + w]
      glcm = greycomatrix(window, d, theta, levels)
      f1.append(greycoprops(glcm, 'correlation')) 
      f2.append(greycoprops(glcm, 'energy'))
      f3.append(greycoprops(glcm, 'homogeneity'))
      f4.append(greycoprops(glcm, 'contrast'))
      f5.append(greycoprops(glcm, 'dissimilarity'))

image1

image2

Я использую не перекрывающее скользящее окно над изображением и вычисляем glcm для каждого окна. Но если я возьму значения свойства «энергия» этих суб windows на изображении и попытаюсь построить их относительно windows, я не получу отчетливого изменения / всплеска в этом конкретном окне с дефектом. Проблема в том, что я не могу четко различить guish как дефектные, так и исправные изображения на основе этих свойств glcm. Стоит ли использовать какой-либо другой алгоритм? есть ли способ лучше без нейронной сети?

...