![](/img/trans.png)
[英]Is that possible to adjust the brightness to be more darkest in the image using opencv in python?
[英]Optimize various brightness image for OCR using OpenCV
您可以使用简单的 ocr为这些情况提供正确的结果。 这将适用于模糊和不模糊的情况。
import easyocr
import cv2
import numpy as np
from PIL import Image, ImageEnhance
def unsharp_mask(image, kernel_size=(5, 5), sigma=1.0, amount=1.0, threshold=0):
"""Return a sharpened version of the image, using an unsharp mask."""
blurred = cv2.GaussianBlur(image, kernel_size, sigma)
sharpened = float(amount + 1) * image - float(amount) * blurred
sharpened = np.maximum(sharpened, np.zeros(sharpened.shape))
sharpened = np.minimum(sharpened, 255 * np.ones(sharpened.shape))
sharpened = sharpened.round().astype(np.uint8)
if threshold > 0:
low_contrast_mask = np.absolute(image - blurred) < threshold
np.copyto(sharpened, image, where=low_contrast_mask)
return sharpened
def increase_brightness(img, value):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
lim = 255 - value
v[v > lim] = 255
v[v <= lim] += value
final_hsv = cv2.merge((h, s, v))
img = cv2.cvtColor(final_hsv, cv2.COLOR_HSV2BGR)
return img
image = cv2.imread('if8nC.png')
sharpened = unsharp_mask(image)
imag = increase_brightness(sharpened, value=10) # 60 ->5qoOk.png #10 -> if8nC.png
cv2.imwrite('resize.png',imag)
reader = easyocr.Reader(['en'],gpu=False)
result = reader.readtext('resize.png')
for detection in result:
print(detection)
您必须进行的唯一调整是将亮度值从 0 更改为 100。它适用于所有情况。 输出是
([[1, 0], [282, 0], [282, 68], [1, 68]], 'Tvrdosin', 0.4517089309490733)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.