в настоящее время пытаюсь рассчитать оптические потоки движущихся объектов. объекты, в частности, квадраты вокруг круглых ручек:
Вот ванильное изображение, которое я пытаюсь обработать:
Меня беспокоит самая правая нижняя полоса. Два квадрата обычно не могут быть обнаружены, когда я пробовал обнаружение Canny Edge или GoodFeaturesToTrack. В настоящее время я пытаюсь сделать ядро резкости и порог, а затем морфологическое преобразование, чтобы найти области контура. Однако, когда я порог, я получаю следующие результаты:
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
filename = 'images/Test21_1.tif'
image = cv.imread(filename)
kernel = [ [0, -1, 0], [-1, 5, -1], [0, -1, 0] ] #sharpen kernel I got from wikipedia
kernel = np.array(kernel)
dst = cv.filter2D(image, -1, kernel)
ret, thresh = cv.threshold(dst, 80, 150, cv.THRESH_BINARY_INV)
plt.subplot(121),plt.imshow(image),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(thresh),plt.title('Threshold')
plt.xticks([]), plt.yticks([])
plt.show()
Мне было интересно, что я могу сделать в openCV, чтобы распознать это квадрат. Эти квадраты - объекты, которые движутся на видео, и я буду sh использовать их для расчета их оптического потока. В настоящее время я рассматриваю возможность использования PyTorch CNN для обнаружения этих функций. Я бы вручную пометил изображения для тренировочных / тестовых наборов данных, но я считаю, что это может быть немного излишним. Спасибо за ваше время.