Я пытаюсь найти объекты с помощью скользящего окна. Скользящее окно перемещается по изображению слева направо вверх вниз. Когда в скользящем окне обнаруживаются ненулевые пиксели, размер которых составляет 70% от размера окна, нарисуйте вокруг него прямоугольник. Я пишу такой код, но когда я его запускал, он показывает только изображение без прямоугольника, как будто скользящее окно ничего не нашло, пока на картинке есть объекты. Как это исправить? спасибо
Изображение: изображение с надписью
введите описание изображения здесь
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread("LabeledImage.jpg")
ImgW = img.shape[1]
ImgH = img.shape[0]
stepSize = 25
(WinHeight, WinWidth) = (35, 200) # window size
# Sliding Window
for x in range(0, ImgH - WinHeight, stepSize):
for y in range(0, ImgW - WinWidth, stepSize):
window = img[y:y + WinWidth, x:x + WinHeight, :]
LabeledPixels = []
for j in range(window.shape[1]):
for i in range(window.shape[0]):
pixel = window[i,j]
if pixel.any() > 0 :
LabeledPixels.append(pixel)
# Count pixels with value greater than 0, if pixels more than 70% draw rectangle around
WinSize = WinWidth * WinHeight
MinObjSize = (70 / 100) * WinSize
cntPixel = len(LabeledPixels)
if cntPixel > MinObjSize:
cv2.rectangle(img, (y, x), (y + WinWidth, x + WinHeight,), (0, 255, 0), 1)
plt.imshow(np.array(img).astype('uint8'))
plt.show()