Sau khi cố gắng cắt hình ảnh của tôi ở nhiều vị trí bằng cách lưu danh sách tọa độ vào một mảng, các chữ cái trong vùng bị cắt trở nên rất mờ và tôi không thể hiểu tại sao.
Hình ảnh ban đầu trông giống như
Hình ảnh được cắt trông giống như
Mã trong câu hỏi như sau:
nhập numpy dưới dạng np
nhập khẩu cv2
im2 = cv2.imread('1.jpg')
im = im2.copy()
màu xám = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
Blur = cv2.GaussianBlur(xám,(5,5),0)
thresh = cv2.adaptiveThreshold(blur,255,1,1,11,2)
đường viền, phân cấp = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
hình vuông = []
cho cnt trong đường viền:
nếu cv2.contourArea(cnt)>50:
[x,y,w,h] = cv2.boundingRect(cnt)
nếu h>28 và h<34:
trực tràng = (cv2.hình chữ nhật(im,(x,y),(x+w,y+h),(255,255,255),3))
Squares.append(cv2.boundingRect(cnt))
cv2.imwrite('norm1.jpg',im)
crop_img = [[[255, 255, 255] cho x trong xrange(377)] cho x trong xrange(377) ]
cho s trong hình vuông:
x = s[0]
y = s[1]
w = s[2]
h = s[3]
img = im[y:y+h,x:x+w]
cho col trong phạm vi (y, y+h):
cho hàng trong phạm vi (x, x+w):
nếu img[col - y][row - x].tolist() == [0,0,0]:
crop_img[col][hàng] = [0,0,0]
cv2.imwrite("cropped.jpg", np.array(crop_img))
如有任何帮助,我们将不胜感激!
nhập numpy dưới dạng np
nhập khẩu cv2
nhập matplotlib.pyplot dưới dạng plt
im2 = cv2.imread('norm1_zps89266edb.jpg')
im = im2.copy()
màu xám = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
Blur = cv2.GaussianBlur(xám,(5,5),0)
ret3,thresh = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
#chúng tôi chỉ muốn những đường nét bên ngoài
đường nét, phân cấp = cv2.findContours(thresh.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
#extract các countour có diện tích > 50
hình vuông = [cnt cho cnt trong đường viền nếu cv2.contourArea(cnt) > 50]
Mảng #mask có hình dạng giống img (nhưng chỉ có 1 kênh)
mặt nạ = np.zeros((im.shape[0], im.shape[1]))
#vẽ các đường viền chứa 255 giá trị.
cv2.drawContours(mặt nạ,hình vuông,-1,255,-1)
newImage = np.where(mask==255, thresh, 255)
plt.imshow(hình ảnh mới)
plt.show()
cv2.imwrite("cropped.jpg", newImage)
Đầu ra:
Tôi là một lập trình viên xuất sắc, rất giỏi!