山东大学暑期实训(八)
中期讨论,在前期的完成情况下进行进度的汇报,以及目前还需要完成的工作.我们图像处理小组需要继续优化算法,主要是目前来说的显现效果不是很好,我们打算看看能不能对先前的算法进行优化,或者通过相关论文(例如甲骨文文字的识别处理)的参考学习,进行相关的尝试.
目前完成的部分代码:
import cv2 as cv
import numpy as np
from PIL import Image, ImageDraw, ImageFont
def threshold_demo(image):
gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_TRIANGLE)
print("threshold value %s"%ret)
cv.namedWindow("binary0", cv.WINDOW_NORMAL)
cv.imshow("binary0", binary)
def local_threshold(image):
gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
binary = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY, 25, 10)
cv.namedWindow("binary1", cv.WINDOW_NORMAL)
cv.imshow("binary1", binary)
def custom_threshold(image):
gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
h, w = gray.shape[:2]
m = np.reshape(gray, [1,w*h])
mean = m.sum()/(w*h)
print("mean:", mean)
ret, binary = cv.threshold(gray, mean, 255, cv.THRESH_BINARY)
cv.namedWindow("binary2", cv.WINDOW_NORMAL)
cv.imshow("binary2", binary)
src = cv.imread('CG21-3.png')
cv.namedWindow('input_image', cv.WINDOW_NORMAL)
cv.imshow('input_image', src)
threshold_demo(src)
local_threshold(src)
custom_threshold(src)
Gray = cv.cvtColor(src, cv.COLOR_RGB2GRAY)
Binary = cv.adaptiveThreshold(Gray, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY, 25, 10)
cv.namedWindow("binary1", cv.WINDOW_NORMAL)
kernel = np.array([ [0, -1, 0],
[-1, 5, -1],
[0, -1, 0] ])
image_lap = cv.filter2D(Binary, cv.CV_8UC3, kernel)
cv.namedWindow("local_", cv.WINDOW_NORMAL)
cv.imshow('local_', image_lap)
img3 = cv.medianBlur(image_lap, 3)
cv2img = cv.cvtColor(img3, cv.COLOR_BGR2RGB)
pilimg = Image.fromarray(cv2img)
cvcharimg = cv.cvtColor(np.array(pilimg), cv.COLOR_RGB2BGR)
cv.imshow("medianBlur", cvcharimg)
cv.waitKey(0)
cv.destroyAllWindows()
后期目标
- 优化代码,尝试多样的方法
- 尝试不同的训练方法,上一篇的内容
- 多看看论文,与小组成员讨论