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

本文标签: 轮廓照片相册模板背景