给照片换底色(python+opencv)

这篇具有很好参考价值的文章主要介绍了给照片换底色(python+opencv)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

给照片换底色(python+opencv)

本篇目录:

🦄 一、分析照片基本信息

🦄 二、方法一(遍历图像,将像素值点替换修改为指定颜色)

 🦄 三、修改图片颜色方法二(先转换图像格式再替换颜色值)

(1)、效果对比图

(2)、实现方法

🦄 四、总结


🦄 一、分析照片基本信息

  生活中,我们有时需要更换照片的底色,例如证件照,有需要蓝底的,也有需要红底的。给照片换底色实现方法有很多,用phothshop、各种图片修改装饰软件都能够做到。那么在计算视觉角度看,实现给照片换底色的方法如何实现呢?

  我们来试一下测试一下。我们有一张蓝底的图片:

给照片换底色(python+opencv)

  要处理好图片,首先要先了解图片的情况,我们来看一下这张图片的基本相关信息:

import cv2
img = cv2.imread('girl4b.jpg') 
print(img)
information = img.shape
print(information)
img_size = img.size 
print(img_size)
ima_type = img.dtype 
print(ima_type)
cv2.imshow("window_name", img) 
cv2.waitKey(0)

 运行结果:

print(img)

  [[[255  19  19]
  [255  10  10]
  [255   9   9]
  ...
  [255  10  11]
  [255   8   9]
  [255  20  20]]

 [[255  10  10]
  [250   2   2]
  [248   0   0]
  ...
  ...
  ...
  [253  12  11]
  [250   9   8]
  [255  20  19]]]

print(information) 

 # 行、列、通道数量:

# 图像高度 × 图像宽度 × 图像通道数

(378, 350, 3)

img_size = img.size
print(img_size)

#图像大小:
396900

ima_type = img.dtype 
print(ima_type)

#图像数据类型:unit8,8位无符号整型

uint8

🦄 二、方法一(遍历图像,将像素值点替换修改为指定颜色)

  把图像修改成白底的图,更改背景:蓝色→白色

  粗糙的代码方法是:

import cv2
img = cv2.imread('girl4b.jpg')  
information = img.shape
(b, g, r) = img[250, 250]  

# 更改背景:蓝色---→白色
for row in range(information[0]):
    for col in range(information[1]):
        (b, g, r) = img[row, col]
        if b >= 200:  # 如果b通道值大于200(蓝色),就将该点替换为白色
            img[row, col] = (255, 255, 255)
cv2.imwrite('girl4b_c30b_white.jpg', img)  
cv2.waitKey(0)  
cv2.destroyAllWindows() 

  运行效果(并不理想):

  图片背景大部分都被替换成了白色,但是人物脸部部分位置,肩膀部分的颜色也被替换成了白色,效果并部理想,需要更换修改颜色的方法。

给照片换底色(python+opencv)

 🦄 三、修改图片颜色方法二(先转换图像格式再替换颜色值)

(1)、效果对比图

  先看一下转换效果对比图片:

给照片换底色(python+opencv)

(2)、实现方法

先转换图像格式再替换颜色值,

图像格式资料可以参考以下博文:

计算机视觉基础__图像特征(位图和矢量图概念、图像的颜色特征、RGB 颜色空间、HSV 颜色空间、HLS 颜色空间、CMYK 颜色、Lab模式、索引模式、HSB色彩模式、灰度图、二值图)

①、导入模块

import cv2
import numpy as np

②、# 读取照片

image=cv2.imread('girl4b.jpg')

、# 图片转换为二值化图

hsvimg = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)

给照片换底色(python+opencv)

④、# 图片二值化黑白处理

lower_red = np.array([110,70,150])
upper_red = np.array([150,255,255])
hbimg = cv2.inRange(hsv, lower_red, upper_red)

给照片换底色(python+opencv)

⑤、#闭运算

k=np.ones((5,5),np.uint8)
r=cv2.morphologyEx(hbimg,cv2.MORPH_CLOSE,k)

⑥ 、#颜色替换

# 像素点为255表示的是白色,我们要将白色处的像素点,替换为红色

# 替换颜色,为BGR通道,不是RGB通道

rows,cols,channels = image.shape
for i in range(rows):
  for j in range(cols):
    if r[i,j]==255:
      image[i,j]=(0,0,255)

 ⑦、#保存新图片

cv2.imwrite('girl4b_c32_red.jpg',image)

给照片换底色(python+opencv)

⑧、#无限等待,销毁内存

cv2.waitKey(0)
cv2.destroyAllWindows()

⑨、完整代码

import cv2
import numpy as np
image=cv2.imread('girl4b.jpg')
#修改尺寸
#image = cv2.resize(image,None,fx=0.8,fy=0.8)
hsvimg = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
cv2.imshow('hsvimg',hsvimg)
lower_red = np.array([110,70,150])
upper_red = np.array([150,255,255])
hbimg = cv2.inRange(hsvimg, lower_red, upper_red)
cv2.imshow('hbimg',hbimg)
k=np.ones((5,5),np.uint8)
r=cv2.morphologyEx(hbimg,cv2.MORPH_CLOSE,k)
cv2.imshow('yuantu',image)
rows,cols,channels = image.shape
for i in range(rows):
  for j in range(cols):
    if r[i,j]==255: 
      image[i,j]=(0,0,255) 
cv2.imshow('red',image)
cv2.imwrite('girl4b_c32_red.jpg',image)
cv2.waitKey(0)
cv2.destroyAllWindows()

🦄 四、总结

  给照片换底色只是最基础的计算机视觉应用之一,进一步,可扩展至人像抠图,    通用抠图(商品、动物、植物、汽车等抠图),天空替换(实现魔法换天空),视频人像抠图等领域。

          推荐阅读:

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

计算机视觉__基本图像操作(显示、读取、保存) 直方图(颜色直方图、灰度直方图) 直方图均衡化(调节图像亮度、对比度)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

 语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

给照片换底色(python+opencv)

 matplotlib 自带绘图样式效果展示速查(28种,全)

给照片换底色(python+opencv)

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

给照片换底色(python+opencv)

给照片换底色(python+opencv)

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

给照片换底色(python+opencv)

给照片换底色(python+opencv)

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

给照片换底色(python+opencv)

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码) HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

给照片换底色(python+opencv)

给照片换底色(python+opencv)

给照片换底色(python+opencv)

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)文章来源地址https://www.toymoban.com/news/detail-444504.html

到了这里,关于给照片换底色(python+opencv)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机毕设 基于生成对抗网络的照片上色动态算法设计与实现 - 深度学习 opencv python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月10日
    浏览(48)
  • 互联网加竞赛 基于生成对抗网络的照片上色动态算法设计与实现 - 深度学习 opencv python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于生成对抗网络的照片上色动态算法设计与实现 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: http

    2024年02月20日
    浏览(53)
  • Python——openpyxl读取Excel表格(读取、单元格修改、单元格加底色)

    🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:一晌小贪欢的博客主页 👍 该系列文章专栏:Python办公自动化专栏 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 ❤️ 欢迎各位佬关注! ❤️ 如我在K列,增加了

    2024年03月20日
    浏览(60)
  • opencv C++ 识别照片中的人脸

    //识别照片中的人脸

    2024年02月11日
    浏览(31)
  • 【图像处理】使用 OpenCV 将您的照片变成卡通

    图像到卡通         在当今世界,我们被图像和视频所包围。从社交媒体到广告,图像已成为一种强大的交流媒介。但是你有没有想过,如果你能把你的照片变成卡通会发生什么?想象一下,为您最喜欢的照片创建动画版本,或者将肖像转换为异想天开的插图。      

    2024年02月15日
    浏览(62)
  • ubuntu22.04下用opencv4.5.4访问照片、视频、摄像头

    opencv的安装过程可参考下面博文,亲测有效(容易出现问题的地方在安装下面依赖的时候,一般会出现报错,需要自己换源,否则后面可能会出现打不开照片或者打开照片是空白的问题) 博文参考:(3条消息) ubuntu22.04 OpenCV4.6.0(c++)环境配置_路飞DoD的博客-CSDN博客 运行终端,输

    2024年02月16日
    浏览(45)
  • 高考证件照要求什么底色

    每年6月7号8号是高考的大日子,寒窗12载就为了考一个好大学,很多同学不知道高考证上面的证件照有什么要求,今天就给同学们普及下高考证件照的要求! 高考报名照片拍摄要求 1、高考报名照片大小为一寸或小二寸,格式为jpg,文件大小必须在15kb—30 kb之间。 头部占照片

    2024年02月09日
    浏览(78)
  • python改变照片格式及尺寸

      最近遇到考试要上传照片,但是对证件照格式有要求,网上找了在线的压缩软件,要么收费,要么不好用,只好使用python来进行。   思路大致是先resize,然后降低图片质量缩小图片大小,加了一个if判断,如果图像大小不在要求范围内,就从85递减,直到图像压缩到这

    2024年02月16日
    浏览(30)
  • python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】

    在当今数字化时代,照片处理和文档编辑是许多领域中不可或缺的任务。从个人创作到企业文档,人们经常需要快速而有效地处理大量照片,并将它们整合到文档中。Python作为一种强大而灵活的编程语言,为自动化这一过程提供了理想的平台。 这篇文章将探讨如何使用Pytho

    2024年02月05日
    浏览(49)
  • 怎么给图片去底色?这几个方法一定要知道

    如果你是一位设计师或者是需要制作图片的人,那么你一定知道去除图片底色的重要性。无论是制作海报、广告、产品图片还是网站页面,去除图片底色可以让你的设计更加精细、美观、专业。在本文中,我们将介绍三种常见的图片去底色方法,帮助你轻松实现去底色的需求

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包