基于MATLAB的证件照片背景变换实例

一、前言

在工作生活中,我们经常用到各种证件的照片,有时候需要不同的背景颜色,这时候我们可以通过数字图像处理进行背景换色。证件照背景换色的核心原理是先精准分割背景与人物主体,再用目标颜色替换背景区域,假如把蓝色背景颜色换成白色,则背景区域的颜色是(255,255,255)。下面给出一个蓝色背景照片换成白色的实例,其它的换色原理类似。

二、原始图像和源代码

1.原始图像如下

2.MATLAB源代码

clear all; % 清除工作区所有变量

close all; % 关闭所有已打开的图形窗口

clc; % 清空命令行窗口

I=imread('f:\PhotoB.jpg');% 读入指定路径(f盘)下名为ecz.jpg的图像

%I=imread('f:\man1.png');% 另一个读入图像的备用语句,读入f盘下man1.png图像

subplot(1,2,1),imshow(I),title('蓝色背景的原始图像'); % 创建1行3列的子图,第1个子图显示原始图像并添加标题

J=I;

m,n,dim=size(J);% 获取图像J的行数m、列数n和维度dim(这里dim为3,因为是RGB彩色图像)

% 遍历图像每个像素,将蓝色背景转换为白色

for x=1:m

for y=1:n

% 判断像素是否属于蓝色背景区域(通过R通道小于110且B通道大于170来识别蓝色,参数可根据实际图像调整)

%在RGB24位真彩色空间中,(255,255,255)为白色,(255,0,0)为红色

if J(x,y,3) >170 && I(x,y,1)<110

J(x,y,1)=255; % 红色通道设为255

J(x,y,2)=255; % 绿色通道设为255

J(x,y,3)=255; % 蓝色通道设为255

end

end

end

subplot(1,2,2),imshow(J),title('把蓝色背景转换为白色背景') % 第3个子图显示背景转换后的图像并添加标题

imwrite(J,'f:\PhotoW.jpg') %把换色的照片以指定文件格式保存在指定目录下

三、主要运行结果和讨论

由上面程序运行结果可知,换色效果好,如果把蓝色背景转换成红色背景只要对上面程序略加修改即可。

如果大家觉得本文对大家的学习和科研有所帮助,请收藏、点赞,欢迎转发,谢谢大家!

相关推荐
潜心一志1 小时前
HALCON软件——数据结构
学习·计算机视觉
菜鸟~noob2332 小时前
【电子战】第07篇:多普勒测向【含matlab代码】
android·开发语言·matlab
可编程芯片开发2 小时前
基于压电能量收集和MPPT最大功率跟踪算法的IoT压力传感器电源系统Simulink建模与仿真
物联网·matlab·simulink·mppt·压电能量收集·iot压力传感器
matlab代码2 小时前
基于matlab阈值分割的车牌识别系统【源码75期】
图像处理·opencv·计算机视觉
菜鸟~noob2332 小时前
【电子战】第12篇:TDOA 定位——双曲线与等时差线【含matlab代码】
开发语言·matlab
kyle~3 小时前
图像直方图
计算机视觉·数学建模·机器视觉·数学统计
羞儿13 小时前
人体姿态估计系统知识框架
深度学习·计算机视觉·姿态估计·行为识别
菜鸟~noob23313 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
大江东去浪淘尽千古风流人物16 小时前
【UniSim-SLAM】前馈SLAM的双流架构:Sim(3)统一位姿图、与经典SLAM及DPVO的三范式对比
深度学习·计算机视觉·3d·交互·人体姿态估计·eccv·3d重建
菜鸟~noob23317 小时前
【电子战】第08篇:多普勒测向的工程实现与优化【含matlab代码】
开发语言·matlab