我有一张这张照片。
把字母做成长方形。
img = cv2.imread('/content/drive/MyDrive/project/t2.jpg')
image = cv2.resize(img,None,None,0.4,0.4)
#cv2_imshow(image)
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,190,255,cv2.THRESH_BINARY_INV)
kernel = np.ones((1,1), np.uint8)
img_dilation = cv2.dilate(thresh, kernel, iterations=1)
ctrs,_= cv2.findContours(img_dilation.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
sorted_ctrs = sorted(ctrs, key=lambda ctr: cv2.boundingRect(ctr)[0])
for i, ctr in enumerate(sorted_ctrs):
x, y, w, h = cv2.boundingRect(ctr)
roi = image[y:y+h, x:x+w]
cv2.rectangle(image,(x,y),( x + w, y + h ),(36,255,12),2)
if w >2 and h > 2:
#os.chdir('{}'.format(folder_out))
roi = cv2.resize(roi,(224,224))
#cv2.imwrite('letter{}.jpg'.format(i), roi)
cv2_imshow(image)
这就是结果。
我想计算列中矩形的个数
我想要一个代码,可以计算列中矩形的数量。你能帮我解决这个问题吗?TT
也许你有简单的解决方案!!
1条答案
按热度按时间rekjcdws1#
绝对不是最佳的(三个循环),但这是有效的。
如果你有很多盒子,它应该被优化。
它基本上检查每一个项目,并将它们与已经记录的盒子进行比较。
如果当前框与组中的一个框有交集,则将其添加到该组。