Как и в заголовках, я пытаюсь использовать регулярные выражения для извлечения части строки, которая находится в списке.Список содержит несколько строк, которые выглядят следующим образом:
"[Decoded(data=b'FF01664817', rect=Rect(left=132, top=207, width=171,height=1))]",
"[Decoded(data=b'FF01664833', rect=Rect(left=227, top=128, width=-6, height=175))]"
Для небольшого контекста строки представляют собой матрицу данных, которую я декодировал с использованием cv2
.Я хочу получить часть между ‘ ’
(содержимым матрицы данных) без остатка.
Мой подход выглядит так:
Data=[re.match(r"\'.*'\)",x[0]) for x in Data]
Но он возвращает только "Null"
для каждой строки в списке, когда я печатаю свои данные.
Остальной код
import cv2
import numpy as np
import ctypes
from pylibdmtx.pylibdmtx import decode
import csv
import re
img = cv2.imread('C:/Users/ML/Desktop/DataMatrix/Test2.jpg')
img2 = img
height, width, channels = img.shape
CROP_W_SIZE = 8
CROP_H_SIZE = 6
Data = []
for ih in range(CROP_H_SIZE ):
for iw in range(CROP_W_SIZE ):
x = int(width / CROP_W_SIZE * iw)
y = int(height / CROP_H_SIZE * ih)
h = int((height / CROP_H_SIZE))
w = int((width / CROP_W_SIZE ))
# print(x,y,h,w)
img = img[y:y+h, x:x+w]
Name = str(time.time())
cv2.imwrite("C:/Users/ML/Desktop/DataMatrix/CROP/" + 'Crop' + str(x+y) + ".jpg",img)
img = img2
Data.append(str(decode(cv2.imread('C:/Users/ML/Desktop/DataMatrix/CROP/'+ 'Crop' + str(x+y) +'.jpg'))))
Data=[re.match(r"\'.*'\)",x[0]) for x in Data]
print(Data)