Python学习(4)证件照底色变换

2023-11-08

Python学习(4)证件照底色变换

前言

随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别是在开源工具和深度学习方向中各种神经网络的应用,使得Python已经成为最受欢迎的程序设计语言之一。由于完全开源,加上简单易学、易读、易维护、以及其可移植性、解释性、可扩展性、可扩充性、可嵌入性:丰富的库等等,自己在学习与工作中也时常接触到Python,这个系列文章的话主要就是介绍一些在Python中常用一些例程进行仿真演示!

一般证件照需要白底,蓝底,或者是红底,网上证件照换底色都是需要付费的,这里来一个简单的python换底色实例。本文例程都是基于Python3.8的环境下进行,所以大家在进行借鉴的时候建议最好在3.8.0版本以上进行仿真。

一. Python准备

如何确定自己安装好了python

win+R输入cmd进入命令行程序
在这里插入图片描述
点击“确定”
在这里插入图片描述
输入:python,回车
在这里插入图片描述
看到Python相关的版本信息,说明Python安装成功。

二. Python仿真

新建一个.py文件,输入以下代码,图片也放在与.py文件同级文件夹下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import cv2
import numpy as np
file=r"src.jpg"
# step1:读取照片
img = cv2.imread(file)
# step1.2:缩放图片()
img = cv2.resize(img, None, fx=1.0, fy=1.0)
rows, cols, channels = img.shape
# 展示图片
cv2.imshow("original...", img)
# step2.1 图片转换为灰度图并显示
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# :图片的二值化处理
# 红底变蓝底
# 将在两个阈值内的像素值设置为白色(255),
#而不在阈值区间内的像素值设置为黑色(0# 
lower_red= np.array([0,125,125])
upper_red = np.array([255,255,255])
mask = cv2.inRange(hsv, lower_red, upper_red) 
#step2.3:腐蚀膨胀 若是腐蚀膨胀后仍有白色噪点,可以增加iterations的值
erode = cv2.erode(mask, None, iterations=5)
# cv2.imshow('erode', erode)
dilate = cv2.dilate(erode, None, iterations=7) 
# step3遍历每个像素点,进行颜色的替换

#若是想要将红底变成蓝底img[i,j]=(255,0,0),
#若是想将蓝底变为红底则img[i,j]=(0,0,255),
#若是想变白底img[i,j]=(255,255,255)

for i in range(rows):
    for j in range(cols):
        if dilate[i,j] ==255: # 像素点255表示白色,180为灰度
            img[i,j]=(0,0,255) # 此处替换颜色,为BGR通道,不是RGB通道 
#step4 显示图像
new_file=r"dst.jpg"
cv2.imwrite(new_file, img)
res = cv2.imread(new_file)
cv2.imshow('result...', res)
# 窗口等待的命令,0表示无限等待
cv2.waitKey(0)

保存.py文件为test2a.py
输入eixt()退出python,输入命令行进入工程文件目录
在这里插入图片描述
输入以下命令,跑起工程

python test2a.py

没有报错,直接弹出图片,运行成功!

三. 仿真结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四. 小结

在Python中调用OpenCV库进行图片读取,简单灰度化处理,通过腐蚀膨胀,确定背景区域,再进行填充即可,比较简单的一个例程,后续还会介绍一些其他的常用小功能小技巧,主要还是在图像处理与语音信号处理方向。每天学一个Python小知识,大家一起来学习进步阿!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python学习(4)证件照底色变换 的相关文章

  • 在 Python 中处理单值元组的最佳实践是什么?

    我正在使用第三方库函数 它从文件中读取一组关键字 并且应该返回一个值的元组 只要有至少两个关键字 它就能正确执行此操作 但是 在只有一个关键字的情况下 它返回一个原始字符串 而不是大小为 1 的元组 这是特别有害的 因为当我尝试做类似的事情
  • 无法在 PIL 中对 16 位 TIF 应用图像滤镜

    我尝试使用 python 应用图像过滤器PIL http www pythonware com products pil 代码很简单 im Image open fnImage im im filter ImageFilter BLUR 此
  • Python中使用cv2获取当前视频播放位置

    我正在尝试使用 CV2 和 Python 从播放视频中获取当前播放时间位置 如果可能 以毫秒为单位 目前我正在使用此示例代码来播放视频文件 import cv2 import numpy as np file name 2 mp4 wind
  • Python - 包和设置文件

    我有一个 python 包 需要从我的项目目录中提取设置 这是我的项目当前的结构 Project bin mypackage package files Project myproject project files start py se
  • Pygame 玩家精灵没有出现

    我一直在为学校计算机课做这个项目 但无法让玩家精灵出现 有人可以帮忙吗 当我运行主游戏循环时 除了玩家精灵之外 所有内容都正确显示 它应该由于箭头输入而在屏幕上移动并受到重力的影响 当我删除图像并仅使用对象类和矩形时 该代码也有效 impo
  • int 对象在尝试对数字的数字求和时不可迭代? [复制]

    这个问题在这里已经有答案了 我有这个代码 inp int input Enter a number for i in inp n n i print n 但它抛出一个错误 int object is not iterable 我想通过将每个
  • 在 Windows 上将 NumPy 与 BLAS 链接

    我正在尝试在 Windows 系统上安装 Theano 并且需要安装 BLAS 和 LAPACK 我的 System32 文件夹中有这些的 dll 文件 当我运行 numpy config来自 Anaconda 的 show 库的路径正确显
  • Python 函数可能会引发哪些异常? [复制]

    这个问题在这里已经有答案了 Python 中有什么方法可以确定 内置 函数可能引发哪些异常 例如 文档 http docs python org lib built in funcs html http docs python org li
  • 按字段名称对命名元组列表进行排序的 Pythonic 方法

    我想对命名元组列表进行排序 而不必记住字段名的索引 我的解决方案看起来相当尴尬 希望有人能有一个更优雅的解决方案 from operator import itemgetter from collections import namedtu
  • 在 Ubuntu 上使用 Python 获取显示器分辨率

    对于 Ubuntu win32api 中是否有与 GetSystemMetrics 相当的代码 我需要获取显示器的宽度和高度 以像素为单位 我可以建议一些可以使用的方法 不过我还没有使用过 xlib 版本 1 xlib Python 程序的
  • 将数据框列打包到 pandas 中列出

    我需要将 pandas DataFrame 列打包到包含列表的一列中 例子 For gt gt gt df a b c 0 81 88 1 1 42 7 23 2 8 37 63 3 18 22 20 制作列表栏 list col 0 81
  • Python3.1中的视图?

    Python3 1中的视图到底是什么 它们的行为方式似乎与迭代器类似 并且它们也可以具体化为列表 迭代器和视图有何不同 据我所知 视图仍然附加到创建它的对象上 对原始对象的修改会影响视图 来自docs http docs python or
  • 如何在树莓派上更新到最新的 python 3.5.1 版本?

    我昨天拿到了 Raspberry Pi 我已经在尝试用它来编写代码了 我有一个计划在其上运行的程序 但它仅与 Python 版本 3 5 0 或 3 5 1 兼容 并且我在互联网上找到的所有内容似乎都已经过时 与 Python 2 有关 或
  • 如何替换被测模块的文件访问引用

    pyfakefs https code google com p pyfakefs 听起来非常有用 它 最初是作为核心 Python 模块的一个适度的假实现来开发的 以支持中等复杂的文件系统交互 并于 2006 年 9 月在 Google
  • 具有条件的重复行 pandas dataframe python

    我的数据框有问题 我的 df 是 product power brand product 1 3 x 1500W brand A product 2 2x1000W 1x100W product 3 1x1500W 1x500W brand
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • Python请求401错误但url在浏览器中打开

    我正在尝试从这个位置提取 json https www nseindia com api option chain indices symbol BANKNIFTY https www nseindia com api option cha
  • 将 pandas 数据框中的多列更改为日期时间

    我有一个 13 列和 55 000 行的数据框 我正在尝试将其中 5 行转换为日期时间 现在它们返回类型 对象 我需要转换这些数据以进行机器学习 我知道如果我这样做 data birth date pd to datetime data b
  • Tensorflow ctc_loss_calculator:找不到有效路径

    当运行我的神经网络 双向 LSTM 进行音频识别时 我使用连接主义时间分类 CTC 但在某些时候 训练网络时我几乎每批都会收到来自 Tensorflow 的警告 W tensorflow core util ctc ctc loss cal

随机推荐

  • react 项目中使用js-export-excel导出excel

    第一步 首先添加包 npm npm install js export excel yarn yarn add js export excel 第二步 组件引入 import ExportJsonExcel from js export e
  • 嵌入式FreeRTOS学习三,FreeRTOS任务的挂起和恢复

    二 任务的挂起和恢复 有时候我们需要暂停某个任务的运行 过一段时间以后在重新运行 这个时候要是使用任务删除和重建的方法的话 那么任务中变量保存的值肯定丢失了 FreeRTOS给我们提供了解决这种问题的方法 那就是任务挂起和恢复 当某个任务要
  • k8s通过Kuboard安装Metrics server报错的解决办法

    文章目录 通过Kuboard安装Metrics server 确认 metrics server 是否正常运行 确认 ApiService 是否正常 排查步骤1 根据ApiService的日志 查443端口 排查步骤2 metrics se
  • 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定

    1 关注微信公众号 公众平台安全助手 2 关闭该公众号的消息免打扰 如下 1 点击3个点 2 点击设置 3 关闭消息免打扰 如图所示 置灰
  • k8s之Deployment与service

    一 概念 pod 最小执行调度单元 Deployment 部署无状态应用 Daemonset 部署守护应用 Cronjob 部署定时任务 job 部署定时任务 statefulset 部署有状态应用 service endpoint ing
  • iOS上传App Store报错:this action cannot be completed -22421 解决方案

    iOS上传App Store报错 this action cannot be completed 22421 解决方案 参考文章 1 iOS上传App Store报错 this action cannot be completed 2242
  • 牛客 · 奇♂妙拆分

    奇 妙拆分 题目描述 在遥远的米 奇 妙 妙 屋里住着一群自然数 他们没事就喜欢拆 开自己来探 究 现在他们想知道自己最多能被拆分成多少个不同的自然数 使得这些自然数相乘的值等于被拆分的数 输入描述 第 1 1 1行输入一个整数 T
  • 一图看懂架构划分原则:技术划分 OR 领域划分?

    架构划分原则 技术划分 描述 按技术用途组织系统组件 典型示例 分层 多层 架构 组件按技术层组织 用户界面 与用户直接交互的部分 业务规则和核心处理 逻辑和算法 与数据库交互 数据存取和查询 数据库层 数据存储和管理 优点 当大部分更改与
  • Linux域名解析得到ip地址

    Linux下域名解析得到ip地址代码如下 include
  • Redis(持续完善....)

    1 Redis结构 Redis是一款基于内存的NoSQL数据存储服务 是非关系型的 是使用K V结构进行存储的 gt lt 基于内存 读写数据均在内存中直接操作 gt
  • 高性能Mysql——SQL执行计划分析(EXPLAIN)

    文章目录 通过EXPLAIN进行执行计划分析 ID select type Table Partitions Type Extra possible keys Key key len Ref Rows Filtered EXPLAIN不能完
  • int与float深入理解

    别在int与float上栽跟头 int与float是我们每天编程都用的两种类型 但是我们真的足够了解它们吗 昨天在博客园看到一个比较老的笑话 昨天晚上下班回家 一民警迎面巡逻而来 突然对我大喊 站住 民警 int 类型占几个字节 我 4 个
  • 记录Maven的相关操作(笔记整理)

    一 安装 我使用的是免安装版的 直接解压缩就可以使用 二 配置环境变量 打开环境变量配置 右键计算机 属性 高级系统设置 高级 环境变量 在系统变量中配置 配置MAVEN HOME 在系统变量中新建 变量名MAVEN HOME 变量值 ma
  • Swoole - 为什么说Swoole中小型企业微服务的首选技术方案

    概述 Swoole的出现 使PHP语言不再局限于传统的 Web领域 对中小企业有很好的支持 有一些企业盲目的追求微服务和K8s 我真诚建议不要轻易上微服务 上了你才知道这里面的辛酸 高成本 低效率会拖碎整个团队 研究中小企业的提效 节省成本
  • sql中on条件和where条件查询结果一样嘛?

    如果使用 join不会有影响 但是 在使用left join时 on和where条件的区别如下 on条件是在生成临时表时使用的条件 它不管on中的条件是否为真 都会返回左边表中的记录 where条件是在临时表生成好后 再对临时表进行过滤的条
  • 【RuoYi-Vue-Plus】学习笔记 28 - 数据脱敏 Json 序列化工具 SensitiveJsonSerializer(Jackson 源码)

    文章目录 前言 参考目录 功能代码实现及测试 1 数据脱敏注解 Sensitive 2 脱敏策略枚举 SensitiveStrategy 3 脱敏 Json 序列化器 SensitiveJsonSerializer 4 测试类 TestSe
  • 大数据面试题集

    史上最全大数据面试题 V3 1 特辑 目录 一 数据仓库 1 维表和宽表的考查 主要考察维表的使用及维度退化手法 2 数仓表命名规范 3 拉链表的使用场景 4 数据库和数据仓库有什么区别 5 有什么维表 时间维表 用户维表 产品维表 合同维
  • PHP 三元 !empty 而不是评估为真或假 可用isset()

    是否可以使用速记三元来检查变量是否已设置 而不是是否计算结果为零或非零 例如 我试过 var 0 echo string var string false 2 但由于前两个表达式的计算结果均为 0 或 false 因此显示为 2 我认为也许
  • Netty4 websocket 开启服务端并设置IP和端口号

    一 环境也就是POM文件
  • Python学习(4)证件照底色变换

    Python学习 4 证件照底色变换 前言 一 Python准备 二 Python仿真 三 仿真结果 四 小结 前言 随着人工智能研究的不断兴起 Python的应用也在不断上升 由于Python语言的简洁性 易读性以及可扩展性 特别是在开源