我的编程空间,编程开发者的网络收藏夹
学习永远不晚

图片的美白与美化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

图片的美白与美化

 博主简介

博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的,如果有错误之处,大家可以指正。

专栏简介:   本专栏主要研究计算机视觉,涉及算法,案例实践,网络模型等知识。包括一些常用的数据处理算法,也会介绍很多的Python第三方库。如果需要,点击这里订阅专栏   。

给大家分享一个我很喜欢的一句话:“每天多努力一点,不为别的,只为日后,能够多一些选择,选择舒心的日子,选择自己喜欢的人!”


目录

添加图形与文字

基础线条图形操作

爱心图片

图像美白

 图片直方图均衡化


前面介绍了如何提取图像中的各种特征,包括颜色特征,几何特征、局部特征等,也进行了各种特征算法学习。那么本节我们来学习美化图片。众所周知,现在各大平台惊现“照骗”,修图技术的发展,让越来越多的人迷失在幻境中,男的批成女的,等等。对于我们计算机专业的学生来说,理解这些功能的底层代码是非常重要的。

添加图形与文字

基础线条图形操作

首先给图片增加一条线或者一些多边形,除了这些,还可以增加一些特殊的图案。一般来说,增加形状的函数由如下几个参数:原图(img)、增加的图型中心(center)、图形的大小(size)、颜色(color)、线条粗细(thinkness)。常用的函数:cv2.circle()画一个圆,cv2.fillPoly()画一个任意多边形、cv2.line()画一条线等。

import cv2import numpy as npimg=cv2.imread('F:\Image\\test11.jpg')w,h,d=img.shape#加圆cv2.circle(img,(int(w/3),int(h/2)),int(w/4),(0,0,255),2)cv2.imshow('显示图片',img)cv2.waitKey()

爱心图片

 当然,除了这种简单的图形,还可以来点复杂的,比如在你和你的女朋友之间加一个爱心。

博主没有女朋友,也没有合照,只能随便用一张图片了。

 言归正传,下面来展示如何画爱心:

import cv2import numpy as npimg=cv2.imread('F:\Image\\test8.jpg')#绘制椭圆弧cv2.ellipse(img,(100,350),(100,200),180,30,150,(0,0,255),1)cv2.ellipse(img,(275,350),(100,200),180,30,150,(0,0,255),1)#绘制直线cv2.line(img,(12,250),(187,450),(0,0,255),1)cv2.line(img,(362,250),(187,450),(0,0,255),1)#显示图片cv2.imshow('2',img)cv2.waitKey(0)

爱心就显示出来了,当然,就一个爱心可是不够的,是不是应该在图像上加一句爱她的话喃,话不多说,安排!

OpenCV中绘制文字的函数cv2.putText(),可选参数有img(输入图片)、text(输入文字)、origin(文字左上角坐标)、font(字体)、scale(大小)、color(颜色)、thinkness(线条粗细)。

import cv2import numpy as npimg=cv2.imread('F:\Image\\test8.jpg')w,h,d=img.shape#绘制椭圆弧cv2.ellipse(img,(100,350),(100,200),180,30,150,(0,0,255),1)cv2.ellipse(img,(275,350),(100,200),180,30,150,(0,0,255),1)#绘制直线cv2.line(img,(12,250),(187,450),(0,0,255),1)cv2.line(img,(362,250),(187,450),(0,0,255),1)#加入文字cv2.putText(img,'I love you',(0,int(h/1.5)),cv2.FONT_HERSHEY_PLAIN,4,(0,0,255),0)#显示图片cv2.imshow('2',img)cv2.waitKey(0)

 现在就可以送给你们的女朋友了。

图像美白

了解了一些简单的操作,现在开始我们真正的修图。磨皮,美白。

所谓的美白,其实就是将图像的亮度提高,可以在HSV颜色空间中进行提高亮度V即可,也可以在RGB模式下将颜色调为白色。

import numpy as npimport cv2img=cv2.imread('F:\Image\\test10.jpg')w,h,d=img.shape#增强亮度for i in range(w):    for j in range(h):        (b,g,r)=img[i,j]        b=min(255,b+40)        g=min(255,g+40)        r=min(255,r+40)        img[i,j]=(b,g,r)#显示图片cv2.imshow('1',img)cv2.waitKey(0)

 对比一下,是不是黑人小哥变白了。但是这个只是进行打光,美白的操作也和这个差不多。但是需要注意的是,美白更注重白色,所以对红色部分就不需要改变,而是按照比例对绿色,蓝色进行提高。同时,我们在美白的时候,需要对人体美白,而不是所有,所以最后好是对指定区域进行美白。

#进行美白,注意单个颜色不能超过255for i in range(w):    for j in range(h):        (b,g,r)=img[i,j]        b=min(255,b*1.4)        g=min(255,g*1.3)        img[i,j]=(b,g,r)

 这样进行处理后的图像就会白很多,如果要求比较高的,那么我们就进行磨皮。需要使用到cv2.bilateralFilter()函数双边滤波与高斯滤波相比能更好的保存图像的边缘信息,这是由于其不但使用了一个与空间距离相关的高斯函数,还使用了一个与灰度距离相关的高斯函数。

img=cv2.bilateralFilter(img,10,30,30)

只需要将三部分进行结合一下,就大功告成了。来吧,展示:

import numpy as npimport cv2img=cv2.imread('F:\Image\\test10.jpg')w,h,d=img.shapeimg=cv2.bilateralFilter(img,10,30,30)#增强亮度for i in range(w):    for j in range(h):        (b,g,r)=img[i,j]        b=min(255,b+40)        g=min(255,g+40)        r=min(255,r+40)        img[i,j]=(b,g,r)#进行美白,注意单个颜色不能超过255for i in range(w):    for j in range(h):        (b,g,r)=img[i,j]        b=min(255,b*1.4)        g=min(255,g*1.3)        img[i,j]=(b,g,r)#显示图片cv2.imshow('1',img)cv2.waitKey(0)

 是不是白了很多喃。快去给你的女友试试吧。

 图片直方图均衡化

前面介绍了一些简单的操作,当然不能就这么简单,我们来试试直方图均衡话图像。简单的来说,就是将图片的色彩均衡化,让图片更加饱满,看起来不那么违和。前面介绍了直方图的函数,这里就不过多介绍了。下面我们用一个小姐姐的图片来演示一下。

import cv2import numpy as npimg=cv2.imread('F:\Image\\test4.jpg')#进行直方图均衡化#通道分解(b,g,r)=cv2.split(img)b=cv2.equalizeHist(b)g=cv2.equalizeHist(g)r=cv2.equalizeHist(r)#通道合成result=cv2.merge((b,g,r))#图片展示cv2.imshow('1',img)cv2.waitKey(0)

   (a)颜色直方图均衡化的图片                                    (b)原图

第一张图是经过处理后的图片,第二张则是原图,可以对比一下,两种图片差别很小,但是第一张的色彩更饱和一点。其他的博主我也看不出来,这个只是给大家一个示范。

好了,本节的内容就到此结束了!关注博主不迷路,下一节我们学习图像的修复和去噪。拜拜了你嘞!

特别提醒:文章中所用的图片是博主从网上下载下来的,并无任何恶意,只是用来作为案例使用,如有侵权,告知博主!谢谢!

点赞加关注不迷路

来源地址:https://blog.csdn.net/qq_59931372/article/details/129480740

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

图片的美白与美化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python 抓取美女图片

之前见过别人写的抓取图片的python脚本,自己之前用正则写过,最近看到beautifulsoup 所以拿来练练手# -*- coding:utf8 -*-from bs4 import BeautifulSoupimport os, sy
2023-01-31

python爬取网站美女图片

今天周五,项目刚刚上线完,有些时间,闲着无聊,继续复习爬虫,这次打算爬取网站的美女图片。得先找到目标,然后目标网站还不会反爬虫,因为自己只是小白,好了开始。寻找目标,发现了目标,哈哈 http://www.meizitu.com 里面图片按
2023-01-31

win8系统中使用Metro应用图标美化来美化电脑图标

常规的电脑图标,在经过多年的一成不变后也会变得腻味,但是在Metro应用可以美化图标,来达到一定的图标效果。那么在win8 系统中的Metro应用图标美化使用技巧要怎么的使用呢?我们一起来看看吧! Metro应用不像传统桌面图标那样能右键-
2022-06-04

python与美图,呵呵,你懂的

#!/usr/bin/pythonimport reimport urllib#def getHtml(url):# urllib.open(url)def getHtml(url): page = urllib.urlopen(url) 
2023-01-31

VUE D3.js与Vue.js:动态图表与数据可视化的完美结合

Vue D3.js与Vue.js的结合,让开发人员能够轻松创建动态图表和数据可视化。本文将介绍Vue D3.js的基本概念、使用方法和演示代码,帮助您快速掌握Vue D3.js的强大功能。
VUE D3.js与Vue.js:动态图表与数据可视化的完美结合
2024-02-27

python制作花瓣网美女图片爬虫

花瓣图片的加载使用了延迟加载的技术,源代码只能下载20多张图片,修改后基本能下载所有的了,只是速度有点慢,后面再优化下import urllib, urllib2, re, sys, os,requests path=r"C:wqabeau
2022-06-04

PPT必须掌握的技巧之相片美化方法

  在PPT设计中,我们都知道,不同于word的纯文本浏览,PPT的外观设计要求较高,在外观设计中就包括了文本的调整,图片的美化和动画的添加等等的操作,今天小编为大家讲解的是PPT中如何美化图片,主要是以下的几种方法:给相片装上相框,艺术化相片,变换相片背景。  首先我们来讲一下如何通过幻灯片制作给相片装上相框:  第
PPT必须掌握的技巧之相片美化方法
2024-04-17

Win10内置图片工具如何旋转图片让它呈现不一样的美

在Winpython10中,打开图片能够显示,那是因为Win10设置了默认的图片软件。Win10系统内置有图片软件,功能还挺强的,现在来看看用它如何旋转图片。php 用WIN10自带照片软件打开你要旋转照片或图片点击图片部分,显示出隐藏的工
2023-06-11

完美解决phpcms图片太大撑破表格图片自适应图片按比例缩小

css Code复制内容到剪贴板img,a img{ border:0; margin:0; padding:0; max-width:590px; width:expression(this.w
2022-06-12

如何美化你的ubuntu

现在就一个ubuntu系统,当然希望它很漂亮啦,自己可以试着玩玩,搞个Mac OS X主题风格,苹果的界面, 苹果的logo。安装Unity Tweak Tool——实现桌面,图标,主题的切换
2023-06-05

生成精美代码图片的工具Carbon如何使用

小编给大家分享一下生成精美代码图片的工具Carbon如何使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、前言carbon,碳棒的意思。功能非常强大,操作很方
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录