Я работаю над проектом с использованием PythoN (3.7) и OpenCV, в котором мне нужно обнаружить QR-код из Image / LiveStream, а затем мне нужно взять обнаруженный QR-код как отдельное изображение, и этот QR Код содержит размер этого изображения QR-кода, поэтому мне нужно взять его как отдельное изображение и сравнить его размер с декодированным размером этого изображения QR-кода.
Обновление:
Вот что у меня есть: у меня есть изображение документа с QR-кодом. На самом деле этот QR-код будет содержать следующую информацию:
- 4 переменных (вверху , справа, снизу, слева)
- Размер изображения QR-кода (например, 10 пикселей означает, что изображение QR-кода составляет 10x10 пикселей)
Вот чего я хочу добиться:
- Я хочу обнаружить QR-код и декодировать (когда я декодирую, я получу его размер изображения)
- Затем я должен сохранить обнаружение QR-кода (выделенная область) как отдельное обрезанное изображение .
- Наконец, мне нужно сравнить размер обрезанного изображения с размером QR-кода (который я получаю после декодирования)
Вот пример ввода и вывода изображения:
Ввод:
Выход:
Я закончил с QR обнаружение кода, но как я могу захватить эту конкретную область как отдельное изображение и сравнить ее размер с другим размером, который будет внутри этого QR-кода?
Вот что я сделал до сих пор:
import cv2
# read the image
image = cv2.imread('/Users/abdul/PycharmProjects/QScanner/images/second.jpg')
qrCodeDetector = cv2.QRCodeDetector()
decodedText, points, _ = qrCodeDetector.detectAndDecode(image)
qr_data = decodedText.split(',')
qr_size = qr_data[0]
top = qr_data[1]
right = qr_data[2]
bottom = qr_data[3]
left = qr_data[4]
print(f'Size: {qr_size}' + str(qr_data[5]))
print(f'Top: {top}')
print(f'Right: {right}')
print(f'Bottom: {bottom}')
print(f'Left: {left}')
if points is not None:
pts = len(points)
print(pts)
for i in range(pts):
nextPointIndex = (i+1) % pts
cv2.line(image, tuple(points[i][0]), tuple(points[nextPointIndex][0]), (255,0,0), 5)
print(points[i][0])
print(decodedText)
cv2.imshow("Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("QR code not detected")