OpenCV字体展示

当我们使用OpenCV时总会面临一个问题,字体太难看怎么办,我的评价是换Pillow最合适。

因为OpenCV的字体太少了,而且兼容性太差,下面的代码以及图片展示的就是CV的全部字体。

import cv2
import numpy as np

# 创建一个黑色的图像
image = np.zeros((500, 800, 3), dtype="uint8")

# OpenCV支持的字体列表
fonts = [
    cv2.FONT_HERSHEY_SIMPLEX,
    cv2.FONT_HERSHEY_PLAIN,
    cv2.FONT_HERSHEY_DUPLEX,
    cv2.FONT_HERSHEY_COMPLEX,
    cv2.FONT_HERSHEY_TRIPLEX,
    cv2.FONT_HERSHEY_COMPLEX_SMALL,
    cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,
    cv2.FONT_HERSHEY_SCRIPT_COMPLEX,
    cv2.FONT_ITALIC
]

# 遍历字体
for i, font in enumerate(fonts):
    # 在图像上写入文字
    cv2.putText(image, f"Font {i}: Test", (10, 30 + i*50), font, 1, (255, 255, 255), 2)

# 显示图像
cv2.imshow("OpenCV Fonts", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV(Open Source Computer Vision Library),是一个开源计算机视觉库,主要用于实时图像处理、计算机视觉任务等。在手写字体识别方面,它提供了一些基础工具,如图像预处理(灰度化、二值化、去噪)、特征提取(例如HOG、SIFT或轮廓检测)以及机器学习模型用于字符识别。 以下是一个简单的Python示例,展示了如何使用OpenCV进行手写数字识别的基本流程: ```python import cv2 import numpy as np from sklearn import svm # 1. 加载训练数据集(通常包含手写数字图片及其对应的标签) # 这里假设我们已经有了训练好的数据集,包括图像和分类器 # train_data, labels = ... # 2. 预处理图片 def preprocess_image(img): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) _, threshold = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) return threshold # 3. 提取特征 def extract_features(image): # 使用SIFT或其他特征提取器 sift = cv2.xfeatures2d.SIFT_create() keypoints, descriptors = sift.detectAndCompute(image, None) return descriptors # 4. 创建并训练支持向量机(SVM)分类器 clf = svm.LinearSVC() X_train = [extract_features(preprocess_image(img)) for img in train_data] y_train = labels clf.fit(X_train, y_train) # 5. 手写字体识别 test_img_path = "path_to_your_test_image.jpg" test_img = cv2.imread(test_img_path) processed_img = preprocess_image(test_img) features = extract_features(processed_img) prediction = clf.predict([features]) print(f"Predicted digit: {prediction}") ``` 注意,这只是一个基本框架,实际的手写字体识别可能会更复杂,涉及到神经网络(如Tesseract、TensorFlow等)或者深度学习技术。此外,获取足够准确的识别结果往往需要大量的标注数据和复杂的算法优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值