Opencv制作电子签名(涉及知识点:像素过滤,图片通用resize函数,像素大于某个阈值则赋值为其它的像素值)

python 复制代码
import cv2


def resize_by_ratio(image, width=None, height=None, inter=cv2.INTER_AREA):
    img_new_size = None
    (h, w) = image.shape[:2] # 获得高度和宽度
    if width is None and height is None: # 如果输入的宽度和高度都为空
        return image # 直接返回原图
    if width is None:
        h_ratio = height / float(h) # 输入高度 / 原始高度 得到比率
        img_new_size = (int(w * h_ratio), height) # 将宽度缩放同样的比例
    else:
        w_ratio = width / float(w)
        img_new_size = (width, int(h * w_ratio))
    resized = cv2.resize(image, img_new_size, interpolation=inter)
    return resized

def guo_lv(img,threshold):
    r, c = img.shape
    print(r,c)
    for i in range(0,r):
        for j in range(0,c):
            if img[i,j]>threshold:
                img[i,j] = 255

img = cv2.imread('../img/qian_ming2.png')
img = resize_by_ratio(img,width=320)
cv2.imshow('img1',img)

img=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
threshold = 120
guo_lv(img,threshold)
cv2.imshow('img',img)





# cv2.imshow('img1',img)
# cv2.imshow('img2',img)
# ret,img_new = cv2.threshold(img, 155, 255, cv2.THRESH_BINARY)
# ret,thresh = cv2.threshold(img,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
# cv2.imshow('img',img)
# cv2.imshow('img1',img)
cv2.waitKey(0)

原图:

执行程序后:

相关推荐
鹏多多7 分钟前
纯前端人脸识别利器:face-api.js手把手深入解析教学
前端·javascript·人工智能
aneasystone本尊19 分钟前
盘点 Chat2Graph 中的专家和工具
人工智能
Baihai_IDP1 小时前
AI Agents 能自己开发工具自己使用吗?一项智能体自迭代能力研究
人工智能·面试·llm
大模型真好玩2 小时前
大模型工程面试经典(七)—如何评估大模型微调效果?
人工智能·面试·deepseek
黎燃10 小时前
短视频平台内容推荐算法优化:从协同过滤到多模态深度学习
人工智能
飞哥数智坊11 小时前
多次尝试用 CodeBuddy 做小程序,最终我放弃了
人工智能·ai编程
后端小肥肠12 小时前
别再眼馋 10w + 治愈漫画!Coze 工作流 3 分钟出成品,小白可学
人工智能·aigc·coze
唐某人丶15 小时前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc
FIT2CLOUD飞致云15 小时前
九月月报丨MaxKB在不同规模医疗机构的应用进展汇报
人工智能·开源
阿里云大数据AI技术15 小时前
【新模型速递】PAI-Model Gallery云上一键部署Qwen3-Next系列模型
人工智能