我编写了一个程序,该程序将图片作为输入并检测我需要编辑我的程序以添加另外两个功能的书面文本
首先,因为我已经能够获得轮廓坐标(完成),我想知道如何获得围绕每个字符轮廓线的背景颜色(在多个点,因为我想计算 RGB 颜色的平均值围绕该字符的值)我只是不知道是否已经有一个函数可以做我想做的事情,或者是否有我应该遵循的特定方法
其次,我试图填充轮廓的内部,但它没有用,有人可以帮助我知道为什么我在我的 cv2.drawContours 中同时尝试了厚度 = -1 和厚度 = cv2.FILLE,没有任何效果,显然只有控制线是蓝色的,但里面不是蓝色的
我知道代码并不完美,并且有很多评论,但这是因为我正在尝试新的东西,在此先感谢所有愿意提供帮助的人
import cv2
import pytesseract
import numpy as np
from PIL import ImageGrab
import pyautogui
def Contour(img):
Contours,hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
for cnt in Contours:
area = cv2.contourArea(cnt)
# print(area)
# if area<150: could be useded to be cpecific
# we need a copy of the image so we dont draw on the original or thickness=-1
cv2.drawContours(imgcpy, cnt, -1, (255,0,0), thickness=-1)
#pytesseract.pytesseract.tesseract_cmd= 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
cap= cv2
img = cv2.imread('D:\\opencv\\R\\img\\lec\\3.png')
imgcpy = img.copy()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# for japanese txt = pytesseract.image_to_string(gray, lang='jpn')
txt = pytesseract.image_to_string(gray)
imgblur = cv2.GaussianBlur(img, (7, 7), 0)
imgcanny = cv2.Canny(img, 200, 200)
#imgDialation = cv2.dilate(imgcanny, kernel, iterations=1)
#imgeroded = cv2.erode(imgDialation, kernel, iterations=1)
imBlank = np.zeros_like(img)
# waste of time only the same picture work -_-
# imstack = np.hstack((gray,gray,gray))
Contour(imgcanny)
cv2.imshow('Contour', imgcpy)
#img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
print(txt)
print(Contour(imgcanny))
#cv2.imshow('test', img)
cv2.waitKey()