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)

原图:

执行程序后:

相关推荐
Brduino脑机接口技术答疑3 分钟前
TDCA 算法在 SSVEP 场景中的训练必要性
人工智能·算法·机器学习·脑机接口
悟道心13 分钟前
1.自然语言处理NLP - 入门
人工智能·自然语言处理
雪花desu21 分钟前
深度解析RAG(检索增强生成)技术
人工智能·深度学习·语言模型·chatgpt·langchain
咚咚王者44 分钟前
人工智能之数学基础 离散数学:第四章 离散概率
人工智能
阿标在干嘛1 小时前
科力辰平台:作为一个科技查新平台,其核心能力边界在哪里?
人工智能·科技
徽4401 小时前
农田植被目标检测数据标注与模型训练总结3
人工智能·目标检测·目标跟踪
冒泡的肥皂1 小时前
25年AI我得DEMO老师
人工智能·后端
wang_chao1181 小时前
Yolov5训练自定义数据集的步骤
深度学习·yolo·计算机视觉
骑猪兜风2331 小时前
软件工程大师 Martin Fowler 谈 AI 与软件工程的变迁
人工智能·软件工程·ai编程
serve the people1 小时前
Agent 基于大模型接口实现用户意图识别:完整流程与实操
大数据·人工智能·agent