wasd163com的个人博客分享 http://blog.sciencenet.cn/u/wasd163com

博文

【身边没有扫描仪,如何将纸上的指纹变为电子版?】

已有 1053 次阅读 2023-11-12 09:10 |个人分类:学以致用|系统分类:科研笔记

使用python脚本,完成扫描仪的功能。

import cv2
import numpy as np

# 读取图像
image = cv2.imread(r'C:\Users\Shuai\Desktop\1.jpg')

# 将图像大小缩小一倍
resized_image = cv2.resize(image, None, fx=0.5, fy=0.5)

# 提取红色和黑色部分
lower_red = np.array([0, 0, 0])
upper_red = np.array([160, 250, 255])
red_mask = cv2.inRange(resized_image, lower_red, upper_red)

lower_black = np.array([0, 0, 0])
upper_black = np.array([50, 50, 50])
black_mask = cv2.inRange(resized_image, lower_black, upper_black)

# 创建一个纯白色的背景
white_background = np.full_like(resized_image, (255, 255, 255))

# 将红色和黑色部分放在白色背景上
red_part = cv2.bitwise_and(resized_image, resized_image, mask=red_mask)
black_part = cv2.bitwise_and(resized_image, resized_image, mask=black_mask)
result_image = white_background + red_part + black_part

# 保存结果
cv2.imwrite('output_image.jpg', result_image)

# 显示结果
cv2.imshow('Result Image', result_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

其中可根据实际效果,对 upper_red = np.array([160, 250, 255])  中的参数进行微调,最终可达到理想效果。脚本由ChatGPT3.5生成。

参数:np.array([160, 250, 255]) 定义了红色范围的上限。这表示红色分量最多为160,绿色分量最多为250,蓝色分量最多为255。



https://blog.sciencenet.cn/blog-3425594-1409342.html

上一篇:2023年6月,Linux系统安装最新java版本步骤
收藏 IP: 5.78.83.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-21 05:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部