admin管理员组文章数量:1530864
2024年6月21日发(作者:)
信电
2021
年第
2
期
China
Computer
&
Communication
1&
软件卄域;与龛用
基于
OpenCV
的电子相册制作
APP
的设计与实现
郑苑丹
(
广东海洋大学数学与计算机学院
,
广东湛江
524000
)
摘
要:
本文基于
OpenCV
软件库和
Android
开发技术
,
借助
OpenCV
提供的边缘检测
、
轮廓识别
、
图像处理等功能
,
实现一个融合相册背景模板和用户照片的电子相册
APP.
该
APP
通过识别出相册背景模板的相框轮廓
,
便能和用户加载
的照片进行融合
,
进而得到用户可以自行调整的照片相册
。
关键词
:
OpenCV;
边缘检测
;
轮廓识别
;
电子相册
中图分类号
:
TP391.41
;
TP183
文献标识码
:A
文章编号
:
4003-9767
(2021
)
02-075-03
Design
and
Implementation
of
Electronic
Album
APP
Based
on
OpenCV
ZHENG
Yuandan
(Department
of
Mathematics
and
Computer,
Guangdong
Ocean
University,
Zhanjiang
Guangdong
524000,
China)
Abstract
:
This
article
is
based
on
OpenCV
software
library
and
Android
development
technology,
with
the
help
of
edge
detection,
contour
recognition,
image
processing
and
other
functions
provided
by
OpenCV,
to
realize
an
electronic
photo
album
APP
that
integrates
photo
album
background
templates
and
user
photos.
The
APP
recognizes
the
outline
of
the
photo
frame
of
the
album
background
template,
and
can
be
integrated
with
the
photos
loaded
by
the
user
to
obtain
a
photo
album
that
the
user
can
adjust
by
themselves.
Keywords:
OpenCV;
edge
detection;
contour
recognition;
electronic
album
0
引言
1
系统总体功能
随着时代的不断进步
,
纸质相册已经不能满足人们随时
电子相册制作
APP通过
OpenCV
提供的图像处理函数识
随地拍照存储相册的需求,
电子相册的出现极大地满足了人
别出相册模板中的相框轮廓
,
将用户选择的照片融合到相册
们的需求
,
其形式也变得多种多样
m
。
目前
,
大多的相册制
模板中
,
并提供照片放大、
移动等功能
,
用户可以根据自己
作软件都是让用户选择若干张照片
,
然后加上动态效果和背
的需要调整照片
,
最后得到一个融合的照片相册
。
系统功能
景音乐
,
制作成动态的电子相册
。
这种电子相册更多是注重
模块如图
]
所示
。
整体效果
,
对于每张相册图片
,
用户可以调整的幅度不大
。
电子相册制作
APP
基于
OpenCV
软件库
,
将相册模板看
成一个带有背景图片的相框,
用户可以选择自己喜欢的相册
模板和照片
,
让照片在相册模板的相框中显示
,并可以调整
照片的大小和位置
。
OpenCV是一个开源的跨平台计算机视觉和机器学习软
件库
,
可以在
Linux
、
Windows
、
Android
和
Mac
OS
操作系
统上运行
。
OpenCV
用
C++语言编写
,
拥有
C++
、
Python
、
Java
和
MATLAB
接口
,
实现了图像处理和计算机视觉方面
的很多通用算法
[
2
]
o
电子相册制作
APP
是通过调用
OpenCV
软件库的
Java
接口
,
借助
OpenCV
的图像处理函数实现的
。
图
1
系统功能模块图
基金项目
:
教育部
2018
年第二批产学合作协同育人项目
(
项目编号
:
2
)
。
作者简介
:
郑苑丹
(
1981
—
)
,
女,
广东湛江人
,
硕士研究生
,
讲师
。
研究方向
:
移动编程
、
网络安全
。
75
China
Computer
&
Communication
2021
年第
2
期
1.1
加载相册模板
第一
,
可以从手机的内存或外存中加载图片作为相册背
景模板
,
也可以从网络上下载图片保存在手机上,
作为相册
背景模板备选
。
第二,
在相册背景模板被处理为一个带有背
景图片的相框时
,要求选用的相册背景模板必须有可以放置
照片的相框轮廓
,
否则
APP无法识别
。
1.2
加载用户照片
用户可以从手机相簿中选取照片
,
并加载到
APP
中
。
选
取的照片将显示在相册背景模板放置照片的相框轮廓中
。
1.3
照片缩放处理
在默认情况下
,
选取的照片是整张图片显示在相册模板
的相框轮廓中
。
照片显示在相框轮廓后,
可以对照片进行放
图
3
轮廓识别流程图
(1)
图像灰度变换是指根据某种目标条件按一定变换
关系逐点改变原图像中每一个像素灰度值的方法
,
边缘检
大处理和缩小处理
。
测主要对图像的灰度变化进行度量
、
检测和定位国
。
因此
,
Canny
边缘检测算法处理的图像为灰度图
,
由于相册背景模
板通常是彩色图像
,
所以先要将相册背景模板转换成灰度图
。
(
2
)
对转换后的灰度图进行
Canny边缘检测
,
并返回
1.4
照片移动处理
在默认情况下
,
选取的照片是以照片的中心为基准显示
在相框轮廓中
,若想调整显示的部分
,
可以在照片显示在相
图片的边缘检测结果,
如图
4
所示
。
从检测结果可以看到
,
框轮廓后对照片进行移动处理
。
最后
,
通过移动照片将想显
示的部分放置在相框轮廓中
。
图片中的边缘均被用点连成线条标识出来
。
2
系统关键技术
电子相册制作
APP
的基本处理流程如图
2
所示
。
通过
OpenCV软件库的图像处理功能
,
获得用户加载进来的相册
背景模板的相框轮廓
,
并通过OpenCV
的图片融合等功能,
将用户加载进来的照片和相册模板融合
,
进而得到照片相册
。
图
4a
原灰度图
图
2
系统基本处理流程
2.1
轮廓识别
对于相册背景模板
,
需要识别出其相框轮廓
,
供照片显
示
。
OpenCV
提供了边缘检测和轮廓识别功能
。
边缘为图像
中灰度发生急剧变化的区域边界
,
边缘点能够给出目标轮廓
的位置
。
边缘检测的本质是利用各种算法得到图像中对象与
图
4b
边缘检测后的图片
图
4
边绦检测结果图片
(3)
根据边缘检测结果可以进行轮廓识别
。OpenCV
提
供
findContours
函数进行轮廓识别
,
并将识别出来的所有轮
背景之间的相交线
[3]
o
Canny
边缘检测算法是由
John
Canny
在
20
世纪
80
年提出的
,
是一种基于
Sobel
梯度的边缘检测
算法
。
该算法包含
3
个步骤
:第一,借助高斯滤波器对原始
图像进行平滑和去噪
;
第二
,使用
Sobel算子计算梯度
;
第三
,
廓存在轮廓数组中
。
(
4
)
OpenCV
将一条连续线条围起来的区域识别为一个
轮廓,
通常一幅图片会被识别出多个轮廓结果
,
需要对识别
非最大抑制和阈值处理
,
消除杂散边缘检测的效果
,
使边缘
出的轮廓进行筛选,
选择一个合适的轮廓用于显示照片
。从
图
4
可以看出
,
只有中间那部分区域可以作为显示照片的轮
更加突出和准确⑷
。
根据OpenCV
开发库提供的相关函数
,
本系统的轮廓识别流程如图
3
所示
。
廓
,
其余的小轮廓均不适合显示图片
。
因此
,
需要对轮廓数
76
信
fit
与电岡
2021
年第
2
期
China
Computer
&
Communication
组里的轮廓按面积进行排序
,
然后选取面积最大的轮廓用于
为基准截取与
ROI
同样大小的部分
,与相册背景模板的轮廓
显示照片
。
融合
。
为了获得比较好的融合效果
,
照片缩放比率最大为照
2.2
图像融合
片的
3倍
,
最小为整个照片显示在轮廓区域
。
对照片的移动处理也需要和图片融合一起实现
。
如果对
在识别出相册背景模板的相框轮廓后
,
将轮廓和用
照片不进行移动处理
,
则相册背景模板的轮廓和原照片进行
户加载进来的照片融合
,
使得照片显示在相框轮廓区域
。
融合
,
如果设置
X
轴和
Y
轴的移动距离
,
则将照片按距离移
OpenCV
提供了图像的基本运算
,
比如图像的叠加
、
按位操
动
,
再将移动后的照片和相册背景轮廓融合
。
对于照片移动,
作等
,
可以实现图像融合
。
图像叠加是当两个输入的图像数
为了得到融合后的相册图片
,
需要计算移动后轮廓
ROI
覆盖
组具有相同的大小和通道数时
,
得到两个数组的和
。
图像的
的照片部分
。
按位运算包括
AND
、
OR
、
NOT
、
XOR
运算
,
用于计算每个
元素的按位运算问
。
在处理过程中
,
首先需要确定将图片的
3
实现效果
哪部分设置为
ROI
(
感兴趣区域
)
,
然后在
ROI
中对图片进
电子相册制作
APP
默认加载一张相册背景模板
,
用户可
行基本运算
,
最后用运算后的
ROI
部分替换原图片的ROI,
以根据自己需要加载相册背景模板
,
并在屏幕居中显示
。
在
实现图像融合
。
用户加载相册背景模板时
,
系统在后台自动对相册背景模板
电子相册制作
APP
将相册背景模板的相框轮廓部分设置
进行轮廓识别
,
识别出相册背景模板的轮廓以备后续使用
。
为
ROI,
如图
5
中的
(
1
)
所示
。
将识别出来的轮廓部分作为
用户可以加载自己喜欢的照片
。
用户加载照片后
,
默认是原
掩膜
,
如图
5
中的
(
2
)
所示
,
相册背景模板的
ROI
与掩膜
图显示在相册背景模板的轮廓位置
。
用户可以通过滑动屏幕
进行图像的按位
AND
运算
,
得到相册背景模板的轮廓外部
对照片进行缩放和移动
,
缩放或移动后的照片按照缩放的比
分
,
如图
5
中的
(
3
)
所示。
将照片以中心为基准截取与
ROI
率和移动的距离显示在相册背景模板的轮廓位置
。
同样大小的部分作为照片的
ROI,
如图
5
中的
(
4
)
所示
,
对
掩膜进行图像的按位NOT
运算
,
得到掩膜的反掩膜
,
如图
5
4
结语
中的
(
5
)
所示
。
照片的
ROI
与反掩膜进行图像的按位
AND
电子相册制作
APP
主要基于
OpenCV
软件库
,
利用
运算,
得到照片的轮廓部分
,
如图
5
中的
(
6
)
所示
。最后将
OpenCV
提供的边缘检测
、
轮廓识别
、
图像处理等功能
,
实
相册背景模板的轮廓外部分和照片的轮廓部分进行图像叠加
现了识别相册背景模板的轮廓
,
将照片和相册背景模板融合,
运算,得到融合的图像,
如图
5
中的
(
7
)
所示
。
得到照片相册
。
在本设计的轮廓识别过程中
,
选择最大面积
的轮廓用于显示
,
有些相册背景模板可能有多个用于显示的
相框轮廓
,
只选择最大面积的轮廓并不能适应所有的相册背
景模板
。
接下来的研究将进一步优化轮廓识别算法
,
使得可
以识别多个用于显示的相框轮廓
。
(1)
(2)
(3)
参考文献
[1]
王萌.基于云的
HTML5+JQ
跨平台交互式电子相册研
究
[D],
西安
:
西安理工大学
,201&
(4)
(
5)
(6)
[2]
百度百科
.opencv[EB/OL].(2018-07-04)[2021-01-20].https:
〃
.
com/item/
opencv/
10320623
?fr=aladdin.
⑶度国旭
.OPENCV
轮廓识别研究与实践
[J].
装备制造技
术
,2020(1):101-103,131.
[4]
Wang
S,Wu
S,Wang
X
5
et
al.A
Canny
operator
road
edge
图
5
图像
ROIE
域触合
detection
method
based
on
color
features[Z].2O2O.
[5]
ions
on
arrays[EB/OL].(2019-09-01)[2020-
2.3
照片缩放和移动
01-20]
.
/3.3.0/d2/de8/group_
core
_
为了增加用户对照片的调整幅度
,
在图像融合过程中用
.
户可以对照片进行缩放处理和移动处理
。
如果对照片不进行
⑹向涛
,
杨乾辉
,
邓云
,
等.结合
canny
边缘检测算法与
k
・
缩放处理
,
则相册背景模板的轮廓和原照片进行融合;
如果
means
算法的图像文字识别
[J].
内江科技
,2020,41(10):39-
设置照片的缩放比率
,
则将照片按比率缩放后,
以照片中心
41,61.
77
版权声明:本文标题:基于OpenCV的电子相册制作APP的设计与实现 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1718900746a738942.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论