Я разрабатываю программу, чтобы вырезать лица из больших изображений в python. Тем не менее, у меня проблема, даже видя их.Работа с большими (более 3000x3000) изображениями в OpenCV, и они не помещаются на моем экране
Изображения, с которыми я работаю, могут быть выше 2000x2000, и они не подходят на моем экране. Это код:
import cv2
import sys
# Get user supplied values
imagePath = sys.argv[1]
cascPath = sys.argv[2]
# Create the haar cascade
faceCascade = cv2.CascadeClassifier(cascPath)
# Read the image
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Detect faces in the image
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.2,
minNeighbors=5,
minSize=(100, 100),
flags = cv2.cv.CV_HAAR_SCALE_IMAGE
)
print "Found {0} faces!".format(len(faces))
# Draw a rectangle around the faces
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.NamedWindow(name, flags=WINDOW_NORMAL)
cv2.imshow("Faces found", image)
cv2.waitKey(0)
И это часть меня интересует:
cv2.NamedWindow(name, flags=WINDOW_NORMAL)
cv2.imshow("Faces found", image)
cv2.waitKey(0)
Теперь документация OpenCV имеет instructions о том, как изменить размер окна, но до сих пор я получаю ошибки:
Ошибка 1:
Found 2 faces!
Traceback (most recent call last):
File "face_detect.py", line 31, in <module>
cv2.NamedWindow(name, flags=WINDOW_NORMAL)
AttributeError: 'module' object has no attribute 'NamedWindow'
Ошибка 2:
Found 2 faces!
Traceback (most recent call last):
File "face_detect.py", line 31, in <module>
cv2.namedWindow("", WINDOW_NORMAL)
NameError: name 'WINDOW_NORMAL' is not defined
Ошибка 3:
File "face_detect.py", line 31
cv2.namedWindow(winname[, WINDOW_NORMAL])
^
SyntaxError: invalid syntax
Может кто-нибудь показать мне, что я делаю неправильно?
Возможно, стоит попытаться переустановить пакет с помощью 'sudo apt-get install python-opencv' ... :) – filaton
@filaton Это немного радикальное исправление для нескольких опечаток. – Suever
@Suever Право! :) Но я помню некоторые случаи, когда OpenCV выбрасывал одно и то же исключение, когда он не был установлен должным образом, поэтому я сказал, что это может стоить. – filaton