CN113592720A - 图像的缩放处理方法、装置、设备、存储介质、程序产品 - Google Patents
图像的缩放处理方法、装置、设备、存储介质、程序产品 Download PDFInfo
- Publication number
- CN113592720A CN113592720A CN202111126168.3A CN202111126168A CN113592720A CN 113592720 A CN113592720 A CN 113592720A CN 202111126168 A CN202111126168 A CN 202111126168A CN 113592720 A CN113592720 A CN 113592720A
- Authority
- CN
- China
- Prior art keywords
- image
- pixel
- pixel point
- energy
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title description 11
- 238000012545 processing Methods 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000003708 edge detection Methods 0.000 claims abstract description 32
- 238000007499 fusion processing Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims abstract description 12
- 230000004927 fusion Effects 0.000 claims description 53
- 238000005265 energy consumption Methods 0.000 claims description 45
- 239000011159 matrix material Substances 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 20
- 230000009467 reduction Effects 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000005070 sampling Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003321 amplification Effects 0.000 description 6
- 238000003199 nucleic acid amplification method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012015 optical character recognition Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/73—Deblurring; Sharpening
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本申请提供了一种图像的缩放处理方法、装置、设备、计算机可读存储介质及计算机程序产品;方法包括:基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像;确定第二灰度图像中每个像素点的能量值;根据第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线,其中,能量线包括的多个像素点的能量加和满足能量条件;对待处理图像中与能量线相关联的多个像素点进行融合处理,得到缩放后图像。通过本申请,能够自适应并准确地缩放图像,本申请实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等场景。
Description
技术领域
本申请涉及图像处理技术,尤其涉及一种图像的缩放处理方法、装置、设备、计算机可读存储介质及计算机程序产品。
背景技术
图像缩放是指通过对待处理图像进行裁剪处理,以缩小待处理图像,或者通过差值方法以放大待处理图像。例如,待处理图像的尺寸为M*N,缩小后图像尺寸要求为m*n,则需要将待处理图像划分为尺寸为(M*N)/(m*n)的互不相交的小块,并计算每个小块的平均值,将每个平均值作为缩小后图像对应的像素值,以实现缩小图像。
但是,相关技术中的图像缩放方案容易造成图像变形等问题,导致图像缩放不准确。
发明内容
本申请实施例提供一种图像的缩放处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够自适应并准确地缩放图像。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种图像的缩放处理方法,包括:
基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像;
确定所述第二灰度图像中每个像素点的能量值;
根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,其中,所述能量线包括的多个像素点的能量加和满足能量条件;
对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像。
本申请实施例提供一种图像的缩放处理装置,包括:
更新模块,用于基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像;
第一确定模块,用于确定所述第二灰度图像中每个像素点的能量值;
第二确定模块,用于根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,其中,所述能量线包括的多个像素点的能量加和满足能量条件;
融合模块,用于对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像。
上述技术方案中,所述更新模块还用于确定边缘检测算子,其中,所述边缘检测算子包括用于检测水平边缘的横向矩阵和用于检测竖直边缘的纵向矩阵;
基于所述横向矩阵与所述第一灰度图像进行平面卷积处理,得到所述第一灰度图像中每个像素点的水平梯度;
基于所述纵向矩阵与所述第一灰度图像作进行平面卷积处理,得到所述第一灰度图像中每个像素点的竖直梯度;
根据所述第一灰度图像中每个像素点的水平梯度和竖直梯度,确定所述第一灰度图像中每个像素点的综合梯度;
基于所述第一灰度图像中每个像素点的综合梯度,更新所述第一灰度图像中每个像素点的像素值,得到第二灰度图像。
上述技术方案中,所述第一确定模块还用于对所述第二灰度图像进行滤波处理,得到与所述第二灰度图像相同尺寸的锐化图像;
将所述锐化图像中每个像素点的像素值,作为所述第二灰度图像中相同位置的像素点的能量值。
上述技术方案中,所述装置还包括:
识别模块,用于对所述待处理图像中的目标对象进行识别处理,得到所述目标对象在所述待处理图像所处的区域;
将所述区域标记为在确定所述能量线时需要忽略的无效区域。
上述技术方案中,所述第二确定模块还用于当缩放处理方向为水平方向时,确定所述待处理图像中每列像素点的能量加和,并将能量加和最小的一列像素点作为与水平方向匹配的能量线;
当缩放处理方向为竖直方向时,确定所述待处理图像中每行像素点的能量加和,并将能量加和最小的一行像素点作为与竖直方向匹配的能量线。
上述技术方案中,所述第二确定模块还用于当所述缩放处理方向为水平方向时,确定所述待处理图像的每行像素点中每个像素点的能量消耗值,其中,所述能量消耗值是特定路径所包括的像素点的能量值的加和,所述特定路径是从所述每行像素点中每个像素点到所述待处理图像的最后一行像素点的路径;
根据所述待处理图像的每行像素点中每个像素点的能量消耗值,确定所述每行像素点中的目标像素点;
将所述每行像素点中的目标像素点进行组合,得到所述待处理图像中与水平方向匹配的能量线。
上述技术方案中,所述第二确定模块还用于将所述待处理图像的第一行像素点中具有最小能量消耗值的像素点,作为所述第一行像素点中的目标像素点;
对所述待处理图像的第i+1行像素点中每个像素点执行以下处理:
将所述多个相邻像素点中具有最小的能量消耗值的像素点,确定为所述第i+1行像素点中的目标像素点。
上述技术方案中,所述第二确定模块还用于针对所述待处理图像中第j行像素点中的像素点jk执行以下处理:
在第j+1行像素点中确定与所述像素点jk对应的多个相邻像素点,并确定所述多个相邻像素点的能量消耗值中的最小值;
针对所述待处理图像中第N行像素点中每个像素点执行以下处理:将所述第N行像素点中每个像素点的能量值作为相应像素点的能量消耗值。
上述技术方案中,所述融合模块还用于当所述缩放处理为放大处理时,将所述能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到所述能量线中每个像素点对应的融合像素值;
将所述能量线中每个像素点对应的融合像素值作为新像素点的像素值;
在所述能量线的每个像素点与相邻像素点之间插入所述新像素点,得到放大后图像。
上述技术方案中,所述融合模块还用于确定所述能量线中每个像素点的第一融合权重,并确定所述能量线中每个像素点的相邻像素点的第二融合权重;
基于所述第一融合权重和所述第二融合权重,对所述能量线中每个像素点的像素值与所述相邻像素点的像素值进行加权求和,得到所述能量线中每个像素点对应的融合像素值。
上述技术方案中,所述融合模块还用于当所述缩放处理为缩小处理时,从所述待处理图像中移除所述能量线;
将所述能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到所述能量线中每个像素点对应的融合像素值;
将所述能量线中每个像素点的相邻像素点的像素值,更新为所述能量线中每个像素点对应的融合像素值;
将所述待处理图像中位于所述能量线第一侧的像素点向第二侧进行平移,得到缩小后图像。
上述技术方案中,所述装置还包括:
缩放模块,用于通过下采样处理将所述待处理图像缩小目标倍数;
对缩小目标倍数后的所述待处理图像进行灰度处理,得到所述第一灰度图像;
通过上采样处理将所述缩放后图像放大所述目标倍数。
上述技术方案中,所述第二确定模块还用于当所述缩放处理方向为竖直方向时,将所述待处理图像顺时针或逆时针旋转九十度;
根据所述第二灰度图像中每个像素点的能量值,在旋转后的所述待处理图像中确定包括竖直排列的多个像素点的能量线。
本申请实施例提供一种用于缩放处理的电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的图像的缩放处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的图像的缩放处理方法。
本申请实施例具有以下有益效果:
通过在待处理图像中确定与缩放处理方向匹配的能量线,并对待处理图像中与能量线相关联的多个像素点进行融合处理,从而基于像素粒度确定待处理图像的能量线,以实现自适应并准确地进行图像缩放;通过边缘检测算子对待处理图像的第一灰度图像进行更新,以节约了相关的计算资源,从而提高图像缩放的效率。
附图说明
图1是本申请实施例提供的图像缩放系统的应用场景示意图;
图2是本申请实施例提供的用于缩放处理的电子设备的结构示意图;
图3是本申请实施例提供的图像的缩放处理方法的第一流程示意图;
图4是本申请实施例提供的图像的缩放处理方法的第二流程示意图;
图5是本申请实施例提供的图像的缩放处理方法的第三流程示意图;
图6是本申请实施例提供的路径的示意图;
图7是本申请实施例提供的能量线的示意图;
图8是本申请实施例提供的原始横图;
图9是相关技术提供的裁剪后的图像;
图10是相关技术提供的裁剪后的图像;
图11是本申请实施例提供的裁剪后的图像。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)人工智能(AI,Artificial Intelligence):计算机科学的一个综合技术,过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
2)客户端:终端中运行的用于提供各种服务的应用程序,例如视频播放客户端、游戏客户端等。
3)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
4)光学字符识别(OCR,Optical Character Recognition):电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程,即对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。
相关技术中,通过以下方式实现图像缩放:方案1、通过下采样或上采样实现图像缩放,例如对图像裁剪使用下采样方式,对图像放大使用上采样方式;方案2、局部区域裁剪或放大,假定原始图像为M*N,缩小后图像大小要求为m*n,这里M、N、m、n均为非0正整数,裁剪策略是固定短边,对长边进行裁剪,例如M/N>m/n,则固定N边,对M边进行裁剪,输出的M边长度为N*m/n。
但是,相关技术存在以下问题:1)绝大部分实际场景中原图和新图宽高比会发生改变,此时通过上采样或者下采样会使得图像发生变形;2)固定短边,对长边裁剪可能会出现裁破主体的情况。
为了解决上述问题,本申请实施例提供了一种图像的缩放处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够自适应并准确地缩放图像。
本申请实施例所提供的图像的缩放处理方法,可以由终端/服务器独自实现;也可以由终端和服务器协同实现,例如终端独自承担下文所述的图像的缩放处理方法,或者,终端向服务器发送针对待处理图像的缩放请求,服务器根据接收的针对待处理图像的缩放请求执行图像的缩放处理方法,基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像,根据第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线,并对待处理图像中与所述能量线相关联的多个像素点进行融合处理,以实现精准的图像缩放,避免形变等问题。
本申请实施例提供的用于缩放处理的电子设备可以是各种类型的终端或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器;终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
参见图1,图1是本申请实施例提供的图像缩放系统10的应用场景示意图,终端200通过网络300连接服务器100,网络300可以是广域网或者局域网,又或者是二者的组合。
终端(运行有客户端,例如相册客户端)可以被用来获取待处理图像,例如,当用户打开终端上运行的相册客户端后,选择相册中的某图像(待处理图像),终端自动获取针对待处理图像的缩放请求(包括待处理图像)。
在一些实施例中,终端200中运行的客户端中可以植入有缩放处理插件,用以在客户端本地实现图像的缩放处理方法。例如,终端200调用缩放处理插件,以实现图像的缩放处理方法,基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像,根据第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线,并对待处理图像中与所述能量线相关联的多个像素点进行融合处理,以实现精准的图像缩放,例如用户选中相册中的待处理图像,需要将该待处理图像由横图转为竖图,则基于图像的缩放处理方法,获得缩放后图像,以实现自适应并准确地进行图像缩放,避免形变、接缝等缩放问题。
在一些实施例中,终端200获取针对待处理图像的缩放请求后,调用服务器100的缩放处理接口(可以提供为云服务的形式,即评论生成服务),服务器100基于针对待处理图像的缩放请求,基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像,根据第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线,并对待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像,并将缩放后图像发送至终端200,以在终端200显示缩放后图像,以实现精准的图像缩放,例如用户选中相册中的待处理图像进行裁剪优化图像,则基于图像的缩放处理方法,获得缩放后图像,以实现自适应并准确地进行图像缩放,避免形变、接缝等缩放问题。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的图像的缩放处理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如相册APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
在一些实施例中,多个服务器可组成为一区块链,而服务器100为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的图像的缩放处理方法所相关的数据(例如缩放处理的逻辑、缩放后图像)可保存于区块链上。
下面说明本申请实施例提供的电子设备的结构,参见图2,图2是本申请实施例提供的用于缩放处理的电子设备500的结构示意图,以电子设备500是终端为例说明,图2所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块553,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的图像的缩放处理装置可以采用软件方式实现,图2示出了存储在存储器550中的图像的缩放处理装置555,其可以是程序和插件等形式的软件,包括以下软件模块:更新模块5551、第一确定模块5552、第二确定模块5553、融合模块5554、识别模块5555以及缩放模块5556,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的图像的缩放处理方法。参见图3,图3是本申请实施例提供的图像的缩放处理方法的流程示意图,将结合图3示出的步骤进行说明。
在下面步骤中,图像缩放是指对数字图像的大小进行调整的过程,即图像缩小或图像放大,例如通过裁剪或者下采样方法以缩小待处理图像,或者通过图像差值或者上采样方法以放大待处理图像。
在步骤101中,基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像。
例如,待处理图像为彩色图像,可以先将待处理图像转化为第一灰度图像,然后再通过边缘检测算子对第一灰度图像进行更新,得到第二灰度图像,从而基于第二灰度图像确定能量线,以减小图像计算量,加快缩放进程。
在一些实施例中,基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像,包括:确定边缘检测算子,其中,边缘检测算子包括用于检测水平边缘的横向矩阵和用于检测竖直边缘的纵向矩阵;基于横向矩阵与第一灰度图像进行平面卷积处理,得到第一灰度图像中每个像素点的水平梯度;基于纵向矩阵与第一灰度图像作进行平面卷积处理,得到第一灰度图像中每个像素点的竖直梯度;根据第一灰度图像中每个像素点的水平梯度和竖直梯度,确定第一灰度图像中每个像素点的综合梯度;基于第一灰度图像中每个像素点的综合梯度,更新第一灰度图像中每个像素点的像素值,得到第二灰度图像。
例如,通过边缘检测算子(例如索贝尔算子)检测边缘,由于邻域的像素对当前像素产生的影响不是等价的,距离不同的像素具有不同的权值,对算子结果产生的影响也不同,距离越远,产生的影响越小。
最后,将第一灰度图像中像素点的综合梯度作为第一灰度图像中像素点的像素值,以得到第二灰度图像,即将像素点P的综合梯度作为第一灰度图像中像素点P的像素值。
在步骤102中,确定第二灰度图像中每个像素点的能量值。
例如,在获得简化的第二灰度图像后,确定第二灰度图像中每个像素点的能量值,以便后续基于每个像素点的能量值,确定待处理图像的能量线,从而进行图像缩放。
在一些实施例中,确定第二灰度图像中每个像素点的能量值,包括:对第二灰度图像进行滤波处理,得到与第二灰度图像相同尺寸的锐化图像;将锐化图像中每个像素点的像素值,作为第二灰度图像中相同位置的像素点的能量值。
例如,通过高通滤波算法对灰度图像进行锐化滤波后,得到锐化后的图像(锐化图像),其中,锐化图像中像素点的值越大表示像素点越有可能是边缘,也即像素点越重要,反之表示像素点越不可能是边缘,也即像素点越不重要。将锐化图像中每个像素点的像素值,作为第二灰度图像中相同位置的像素点的能量值,第二灰度图像中像素点的能量值表示像素点的重要性,像素点的能量越大,像素点越重要,反之像素点越不重要。
在步骤103中,根据第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线,其中,能量线包括的多个像素点的能量加和满足能量条件。
例如,能量条件为能量线包括的多个像素点的能量加和最小,当基于第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线时,说明确定了待处理图像中最不重要的目标线段,从而基于目标线段进行缩放处理,提高图像缩放的准确性,避免形变等问题。
参见图4,图4是本申请实施例提供的图像的缩放处理方法的一个可选的流程示意图,图4示出图3还包括步骤105-步骤106:在步骤105中,对待处理图像中的目标对象进行识别处理,得到目标对象在待处理图像所处的区域;在步骤106中,将区域标记为在确定能量线时需要忽略的无效区域。
例如,为了在缩放(例如剪裁)的时候可以避开人脸和字幕等目标对象,即对于包含人脸的待处理图像,需要识别出人脸框;对于包含字幕的待处理图像,需要通过光学字符识别进行文字识别和文字框检测。在识别到人脸和字幕后,在待处理图像中将人脸和字幕对应的区域范围设置为255,从而在确定能量线时便可以避开人脸和字幕。
在一些实施例中,根据第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线,包括:当缩放处理方向为水平方向时,确定待处理图像中每列像素点的能量加和,并将能量加和最小的一列像素点作为与水平方向匹配的能量线;当缩放处理方向为竖直方向时,确定待处理图像中每行像素点的能量加和,并将能量加和最小的一行像素点作为与竖直方向匹配的能量线。
其中,以待处理图像m*n为例,当缩放处理方向为水平方向、且能量线为直线时,按列计算每一列的能量和,选择能量和最小的列裁剪,即计算第j列的能量:sum(energy[1,j]+energy[2,j]+...+energy[m,j]),选择能量和最小的列进行裁剪;当缩放处理方向为竖直方向、且能量线为直线时,按行计算每一行的能量和,选择能量和最小的行裁剪。
在一些实施例中,根据第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线,包括:当缩放处理方向为水平方向时,确定待处理图像的每行像素点中每个像素点的能量消耗值,其中,能量消耗值是特定路径所包括的像素点的能量值的加和,特定路径是从每行像素点中每个像素点到待处理图像的最后一行像素点的路径;根据待处理图像的每行像素点中每个像素点的能量消耗值,确定每行像素点中的目标像素点;将每行像素点中的目标像素点进行组合,得到待处理图像中与水平方向匹配的能量线。
例如,当缩放处理方向为水平方向时,首先确定待处理图像中每个像素点的能量消耗值,然后根据待处理图像的每行像素点中每个像素点的能量消耗值,确定每行像素点中的目标像素点,并基于目标像素点的行顺序,将所有目标像素点进行连接,以得到待处理图像中与水平方向匹配的能量线。
例如,当缩放处理方向为竖直方向时,首先确定待处理图像中每个像素点的能量消耗值,然后根据待处理图像的每列像素点中每个像素点的能量消耗值,确定每列像素点中的目标像素点,并基于目标像素点的列顺序,将所有目标像素点进行连接,以得到待处理图像中与竖直方向匹配的能量线。
在一些实施例中,根据待处理图像的每行像素点中每个像素点的能量消耗值,确定每行像素点中的目标像素点,包括:将待处理图像的第一行像素点中具有最小能量消耗值的像素点,作为第一行像素点中的目标像素点;对待处理图像的第i+1行像素点中每个像素点执行以下处理:在待处理图像的第i+1行像素点中,确定与第i行中的目标像素点相邻的多个相邻像素点,其中,i为整数且,N为待处理图像的像素点行数;将多个相邻像素点中具有最小的能量消耗值的像素点,确定为第i+1行像素点中的目标像素点。
例如,将待处理图像的第一行像素点中能量消耗值(cost)最小的像素点作为路径的起点,第二行开始到最后一行,以找到待处理图像的能量线,能量线的路径为上一行选择的像素点到下一行对应的3个邻域内的一个点的路线,如图6所示,如果第i行选择的点为[i,k],则能量线为点[i,k]到第i+1行选择的点(为[i+1,k-1],[i+1,k],[i+1,k+1]三个点中cost值最小的点)的路径,从而找到一条顶部到底部的能量值变化最小的路径。
在一些实施例中,确定待处理图像的每行像素点中每个像素点的能量消耗值,包括:针对待处理图像中第j行像素点中的像素点jk执行以下处理:在第j+1行像素点中确定与像素点jk对应的多个相邻像素点,并确定多个相邻像素点的能量消耗值中的最小值;将最小值与像素点jk的能量值的加和,作为像素点jk的能量消耗值;其中,j为整数且,N为待处理图像的像素点行数,k为整数且取值满足,K为每行像素点的像素点总数;针对待处理图像中第N行像素点中每个像素点执行以下处理:将第N行像素点中每个像素点的能量值作为相应像素点的能量消耗值。
需要说明的是,能量消耗值的计算方式是从待处理图像的最后一行的像素点开始,向上进行迭代到第一行的像素点,例如对于待处理图像的最后一行的像素点,能量消耗值为像素点的能量值;对于其他行的像素,能量消耗值为像素点的能量值加上下一行的3个邻域的像素点的值的最小值。
其中,能量消耗值的表达式如下:
对于待处理图像最后一行的像素点,cost[j,k]=energy[j,k]。
对于其他行的像素点,cost[j,k]=energy[j,k]+min(cost[j+1,k],cost[j+1,k-1],cost[j+1,k+1])。
在步骤104中,对待处理图像中与能量线相关联的多个像素点进行融合处理,得到缩放后图像。
例如,当基于第二灰度图像中每个像素点的能量值,在待处理图像中确定与缩放处理方向匹配的能量线时,说明确定了待处理图像中最不重要的目标线段,从而对待处理图像中与能量线相关联的多个像素点进行融合处理,以实现图像缩放功能,提高图像缩放的准确性,避免形变、拼接痕迹等问题。
参见图5,图5是本申请实施例提供的图像的缩放处理方法的一个可选的流程示意图,图5示出图3的步骤104可以通过步骤1041-步骤1043实现:在步骤1041中,当缩放处理为放大处理时,将能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到能量线中每个像素点对应的融合像素值;在步骤1042中,将能量线中每个像素点对应的融合像素值作为新像素点的像素值;在步骤1043中,在能量线的每个像素点与相邻像素点之间插入新像素点,得到放大后图像。
例如,对于图像放大的方案,当找到待处理图像的能量线后,并在能量线的位置插入新的像素,并用相邻两个像素的融合作为新像素的值。例如,能量线上的坐标为P(x,y),那么可以在像素点P(x,y)与像素点P(x-1,y)之间插入一个新像素点,将P(x,y)与P(x-1,y)融合得到新像素点的像素值,并将新像素点插入像素点P(x,y)与像素点P(x-1,y)之间,以实现图像放大,避免出现明显的拼接痕迹。
在一些实施例中,将能量线包含的每像素点的像素值与相邻像素点的像素值进行融合处理,得到能量线中每个像素点对应的融合像素值,包括:确定能量线中每个像素点的第一融合权重,并确定能量线中每个像素点的相邻像素点的第二融合权重;基于第一融合权重和第二融合权重,对能量线中每个像素点的像素值与相邻像素点的像素值进行加权求和,得到能量线中每个像素点对应的融合像素值。
例如,这里的融合可以是任意的方式,例如alpha融合,将alpha作为能量线中每个像素点的第一融合权重,将1-alpha作为能量线中每个像素点的相邻像素点的第二融合权重,基于第一融合权重和第二融合权重,对能量线中每个像素点的像素值与相邻像素点的像素值进行加权求和,得到能量线中每个像素点对应的融合像素值,并将能量线中每个像素点对应的融合像素值作为新像素点的像素值,从而能够综合像素点以及相邻像素点,避免出现明显的拼接痕迹。
在一些实施例中,对待处理图像中与能量线相关联的多个像素点进行融合处理,得到缩放后图像,包括:当缩放处理为缩小处理时,从待处理图像中移除能量线;将能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到能量线中每个像素点对应的融合像素值;将能量线中每个像素点的相邻像素点的像素值,更新为能量线中每个像素点对应的融合像素值;将待处理图像中位于能量线第一侧的像素点向第二侧进行平移,得到缩小后图像。
例如,对于水平方向的图像缩小方案,当找到待处理图像的能量线后,需要移除能量线,将路径右侧的像素点均往左平移一个像素,这样才能实现图像的宽度缩小一个像素的功能。移除时,为了使图像看起来自然,需要融合移除能量线的区域。例如移除坐标为p(x,y),那么移除后的p(x-1,y)的像素值为移除前的p(x-1,y)与p(x,y)的像素值的融合值(即融合像素值),移除后的p(x+1,y)的像素值为移除前的p(x+1,y)与p(x,y)的像素值的融合值(即融合像素值),然后把移除后的p(x+1,y)移动到p(x,y)的位置,以实现图像缩小,避免出现明显的拼接痕迹。
其中,这里的融合可以是任意的方式,最简单的是alpha融合,如公式(4)所示:
pixel[x-1,y]=alpha*pixel[x-1,y]+(1-alpha)*pixel[x,y] (4)
其中,可以令alpha=0.5,即取两个像素的平均值。
需要说明的是,待处理图像中位于能量线第一侧的像素点向第二侧进行平移可以是位于能量线右侧的像素点均往左平移一个像素,还可以是位于能量线左侧的像素点均往右平移一个像素。
其中,以待处理图像m*n裁剪为m*n'为例,即需要水平方向裁剪n-n'像素。重复步骤103和步骤104操作n-n'次,可以裁剪出m*n'尺寸的图像。
在一些实施例中,基于边缘检测算子对待处理图像的第一灰度图像进行更新之前,通过下采样处理将待处理图像缩小目标倍数;对缩小目标倍数后的待处理图像进行灰度处理,得到第一灰度图像;对待处理图像中与能量线相关联的多个像素点进行融合处理,得到缩放后图像之后,通过上采样处理将缩放后图像放大目标倍数。
例如,由于每次缩放都需要计算一次待处理图像中所有像素点的cost值(cost矩阵),导致耗时比较大,在执行缩放时,可以先将待处理图像按照宽高比等比例缩小x倍(目标倍数),比如4倍,再计算cost矩阵,根据cost矩阵确定能量线,并进行缩放处理,缩放完成之后再放大x倍,以达到速度上的提升。
例如,当缩放处理方向为水平方向时,确定待处理图像中每列像素点的能量加和,并将能量加和最小的一列像素点作为与水平方向匹配的能量线;当缩放处理方向为竖直方向时,确定待处理图像中每行像素点的能量加和,并将能量加和最小的一行像素点作为与竖直方向匹配的能量线,即分别以水平方向和竖直方向设计两个独立的缩放算法,这种方案将会浪费大量开发资源。
针对上述情况,当缩放处理方向为竖直方向时,将待处理图像顺时针或逆时针旋转九十度;根据第二灰度图像中每个像素点的能量值,在旋转后的待处理图像中确定包括竖直排列的多个像素点的能量线,当得到缩放后图像后,将缩放后图像逆时针或顺时针旋转九十度,以通过水平方向的缩放处理实现竖直方向的缩放处理,从而减小开发资源浪费。
综上,本申请实施例提供的图像的缩放处理方法具有以下有益效果:通过在待处理图像中确定与缩放处理方向匹配的能量线,并对待处理图像中与能量线相关联的多个像素点进行融合处理,从而基于像素粒度确定待处理图像的能量线,以实现自适应并准确地进行图像缩放;通过边缘检测算子对待处理图像的第一灰度图像进行更新,以节约了相关的计算资源,从而提高图像缩放的效率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供的图像的缩放处理方法可应用于以下场景:
场景1、视频封面图横屏转竖屏。例如大部分视频封面、专辑封面图仍然是横屏样式,而随着竖版视频的兴起,封面图也需要适应竖屏风格,需要横图转竖图或者是竖图转横图以应用图像缩放。
场景2、用户拍照的图片有些主体不是特别明确的,或者很多区域是无用的,可以采用本申请实施例裁剪出包括主体的区域。
相关技术中,通过以下方式实现图像缩放:方案1、通过下采样或上采样实现图像缩放;方案2、局部区域裁剪或放大。
但是,相关技术存在以下问题:1)绝大部分实际场景中原图和新图宽高比会发生改变,此时通过上采样或者下采样会使得图像发生变形;2)固定短边,对长边裁剪可能会出现裁破主体的情况。
为了解决上述问题,本申请实施例基于图像边缘检测算法,实现对图像的智能放缩算法(即图像的缩放处理方法),可以放大图像的局部细节,裁剪时通过融合前后像素点使得图像没有明显的拼接痕迹,还可以用于图像的自适应裁剪以满足不同尺寸规格要求的场景,可以将其用于素材提取并制作海报图进行投放。
本申请实施例将图像转为灰度图后,通过边缘检测算子(如sobel算子),确定灰度图中各像素点的能量值,为使图像没有明显的拼接痕迹,在移除像素点或新增像素点时,对能量线附近的像素点进行融合。
下面具体说明本申请实施例提供的图像缩放方案:
步骤11、图像转为灰度图,并通过边缘检测算子对灰度图进行更新,得到矩形矩阵(piexl),也即灰度图中每个像素点的图像值pixel[i,j]。
首先对彩色图片(RGB)使用高斯模糊平滑降噪,再将降噪后的图像转化为灰度图像(待处理图像的第一灰度图像),其计算公式如公式(5)所示:
Gray=R*0.299+G*0.587+B*0.114 (5)
其中,灰度图像(Gray)的像素值范围为0-255的整数。
然后使用边缘检测的索贝尔算子(sobel算子)来对第一灰度图像进行处理,得到第二灰度图像(锐化后的图像),即第i行第j列的图像值为pixel[i,j]。其中,通过对第一灰度图像进行锐化滤波后,得到锐化后的图像,像素点的值越大表示像素点越有可能是边缘,也即像素点越重要,反之表示像素点越不可能是边缘,也即像素点越不重要。
在剪裁的时候可以避开人脸和字幕,即对于包含人脸的图像,需要识别出人脸框,可以用人脸识别解决,如多任务卷积神经网络(MTCNN,Multi-Task Convolutional NeuralNetwork);对于包含字幕的图像,需要通过光学字符识别(OCR)进行文字识别和文字框检测。在识别到人脸和字幕后,在灰度图或者彩色图中将人脸和字幕对应的区域范围设置为255,在确定能量线时便可以避开人脸和字幕。
步骤12、根据锐化后的图像,计算能量递推公式。
像素点的能量表示像素点的重要性,即像素点的能量越大,像素点越重要,反之像素点越不重要。对应于步骤11中的图像,可以定义像素点的计算公式如公式(6)所示:
energy[i,j]=pixel[i,j] (6)
其中,像素点的图像值pixel[i,j]越大,同时能量energy[i,j]越大,反之图像值越低,因此能量越低。能量值越高则说明该区域是图像重要内容的可能性越大。本申请实施例在对图像进行裁剪时,可以裁剪图像中的非关键区域,即优先保留能量值高的区域,裁剪能量值低的区域。
需要说明的是,能量线并不一定是一条直线,还可以是如图7所示的曲线701,但是能量线必须满足从顶部到底部是在3邻域内是连续的。
其中,本申请实施例需要寻找最小的能量线,最小的能量线指的是需要被裁剪的一条线(可以为直线或曲线)。以原图(待处理图像)m*n裁剪为m*n'为例,即需要水平方向裁剪n-n'像素,裁剪分多次进行,每次裁剪1个像素,共裁剪n-n'次。其中,最简单的方案是按列计算每一列的能量和,选择能量和最小的列进行裁剪,即计算第j列的能量sum(energy[1,j]+energy[2,j]+...+energy[m,j]),选择能量和最小的列进行裁剪,重复多次可以得到m*n'的图片。
下面具体说明能量线的计算方式:
从图像的最后一行开始,并向上迭代。首先找到最后一行需要被移除的像素点,假设坐标为p(x,y),然后往上一行寻找,寻找p点在上一行(即y-1行)中的三个相邻像素点中的能量值最小的像素点,也就是寻找坐标为(x-1,y-1)、(x,y-1)、(x+1,y-1)中能量值最小的像素点。这里是考虑每个像素点仅连接到它上面3个最近的像素点,这将使像素点从上到下具有连续的路径。
例如,函数cost表示从一个像素点到图像最后一行的最小成本像素路径。
其中,cost的表达式如下:
对于图像最后一行的像素点,cost[i,j]=energy[i,j]。
对于其他行的像素点,cost[i,j]=energy[i,j]+min(cost[i+1,j],cost[i+1,j-1],cost[i+1,j+1])。
需要说明的是,对于图像最后一行的像素,cost值为像素点的能量值;对于其他行的像素,cost值为像素点的能量值加上第i+1行的3个邻域的像素点的值的最小值。其中,cost计算的方式是从最后一行开始,向上进行迭代到第一行。
步骤13、根据能量递推公式,找到并移除最小能量线的路径。
将第一行cost最小的像素点作为路径的起点,第二行开始到最后一行,能量线的路径为上一行选择的像素点到下一行对应的3个邻域内的一个点的路线,即如果第i行选择的点为[i,j],则能量线为点[i,j]到第i+1行选择的点(为[i+1,j-1],[i+1,j],[i+1,j+1]三个点中cost值最小的点)的路径,从而找到一条顶部到底部的能量值变化最小的路径。
需要说明的是,在移除时,将路径右侧的像素点均往左平移一个像素,这样才能实现图像的宽度缩小一个像素的功能。移除时,为了使图像看起来自然,需要融合移除能量线的区域。假设移除坐标为p(x,y),那么移除后的p(x-1,y)的像素值为移除前的p(x-1,y)与p(x,y)的像素值的融合值。移除后的p(x+1,y)的像素值为移除前的p(x+1,y)与p(x,y)的像素值的融合值,然后把移除后的p(x+1,y)移动到p(x,y)的位置。
其中,这里的融合可以是任意的方式,最简单的是alpha融合,如公式(7)所示:
pixel[x-1,y]=alpha*pixel[x-1,y]+(1-alpha)*pixel[x,y] (7)
其中,可以令alpha=0.5,即取两个像素的平均值。
步骤14、多次进行步骤12和步骤13,直至完成裁剪任务。
其中,以原图m*n裁剪为m*n'为例,即需要水平方向裁剪n-n'像素。重复步骤12和步骤13操作n-n'次,可以裁剪出m*n'尺寸的图像。
如图8所示的原始横图,需要将原始横图1280*720尺寸进行裁剪,裁剪目标为980*720尺寸,采用相关技术的方案1对图8进行剪裁,得到如图9所示的图像,采用相关技术的方案2对图8进行剪裁,得到如图10所示的图像,采用本申请实施例的方案对图8进行剪裁,得到如图11所示的图像。可以看到图9中的区域901会发生变形,图10中的船只1001被裁破,本申请实施例采用的方案的裁剪效果较好,图11中两船只之间的间距1101变短,不会出现变形、裁破等问题。
对于图像的放大算法原理,本申请实施例需要找到最小的能量线,并再最小位置插入新的像素,并用附近两个像素的融合作为新像素的值。例如,最小能量线上的坐标为P(x,y),那么可以在P(x,y)与P(x-1,y)之间插入一个新像素点,P(x,y)与P(x-1,y)融合得到新像素点的像素值。
需要说明的是,由于每次裁剪都需要计算一次cost矩阵(即所有像素点的cost值),导致耗时比较大,在执行裁剪时,可以先将原图按照宽高比等比例缩小x倍,再计算cost矩阵,根据cost矩阵确定能量线,并进行裁剪,裁剪完成之后再放大x倍,以达到速度上的提升。
另外,对竖直方向的图像缩放处理,可以先将图像旋转90度后采用本方案处理,处理完之后再朝相反方向旋转90度,以减小开发资源浪费。
综上,本申请实施例可以用于图像的后处理,包括图像的自适应裁剪,自适应扩大,放大图像的局部细节,裁剪时通过融合前后像素点使得图像没有明显的拼接痕迹。
至此已经结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的图像的缩放处理方法,下面继续说明本申请实施例提供的图像的缩放处理装置555中各个模块(更新模块5551、第一确定模块5552、第二确定模块5553、融合模块5554)配合实现缩放处理的方案。
更新模块5551,用于基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像;第一确定模块5552,用于确定所述第二灰度图像中每个像素点的能量值;第二确定模块5553,用于根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,其中,所述能量线包括的多个像素点的能量加和满足能量条件;融合模块5554,用于对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像。
在一些实施例中,所述更新模块5551还用于确定边缘检测算子,其中,所述边缘检测算子包括用于检测水平边缘的横向矩阵和用于检测竖直边缘的纵向矩阵;基于所述横向矩阵与所述第一灰度图像进行平面卷积处理,得到所述第一灰度图像中每个像素点的水平梯度;基于所述纵向矩阵与所述第一灰度图像作进行平面卷积处理,得到所述第一灰度图像中每个像素点的竖直梯度;根据所述第一灰度图像中每个像素点的水平梯度和竖直梯度,确定所述第一灰度图像中每个像素点的综合梯度;基于所述第一灰度图像中每个像素点的综合梯度,更新所述第一灰度图像中每个像素点的像素值,得到第二灰度图像。
在一些实施例中,所述第一确定模块5552还用于对所述第二灰度图像进行滤波处理,得到与所述第二灰度图像相同尺寸的锐化图像;将所述锐化图像中每个像素点的像素值,作为所述第二灰度图像中相同位置的像素点的能量值。
在一些实施例中,所述装置还包括:识别模块5555,用于对所述待处理图像中的目标对象进行识别处理,得到所述目标对象在所述待处理图像所处的区域;将所述区域标记为在确定所述能量线时需要忽略的无效区域。
在一些实施例中,所述第二确定模块5553还用于当缩放处理方向为水平方向时,确定所述待处理图像中每列像素点的能量加和,并将能量加和最小的一列像素点作为与水平方向匹配的能量线;当缩放处理方向为竖直方向时,确定所述待处理图像中每行像素点的能量加和,并将能量加和最小的一行像素点作为与竖直方向匹配的能量线。
在一些实施例中,所述第二确定模块5553还用于当所述缩放处理方向为水平方向时,确定所述待处理图像的每行像素点中每个像素点的能量消耗值,其中,所述能量消耗值是特定路径所包括的像素点的能量值的加和,所述特定路径是从所述每行像素点中每个像素点到所述待处理图像的最后一行像素点的路径;根据所述待处理图像的每行像素点中每个像素点的能量消耗值,确定所述每行像素点中的目标像素点;将所述每行像素点中的目标像素点进行组合,得到所述待处理图像中与水平方向匹配的能量线。
在一些实施例中,所述第二确定模块5553还用于将所述待处理图像的第一行像素点中具有最小能量消耗值的像素点,作为所述第一行像素点中的目标像素点;对所述待处理图像的第i+1行像素点中每个像素点执行以下处理:在所述待处理图像的第i+1行像素点中,确定与第i行中的目标像素点相邻的多个相邻像素点,其中,i为整数且,N为所述待处理图像的像素点行数;将所述多个相邻像素点中具有最小的能量消耗值的像素点,确定为所述第i+1行像素点中的目标像素点。
在一些实施例中,所述第二确定模块5553还用于针对所述待处理图像中第j行像素点中的像素点jk执行以下处理:在第j+1行像素点中确定与所述像素点jk对应的多个相邻像素点,并确定所述多个相邻像素点的能量消耗值中的最小值;将所述最小值与所述像素点jk的能量值的加和,作为所述像素点jk的能量消耗值;其中,j为整数且,N为所述待处理图像的像素点行数,k为整数且取值满足,K为每行像素点的像素点总数;针对所述待处理图像中第N行像素点中每个像素点执行以下处理:将所述第N行像素点中每个像素点的能量值作为相应像素点的能量消耗值。
在一些实施例中,所述融合模块5554还用于当所述缩放处理为放大处理时,将所述能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到所述能量线中每个像素点对应的融合像素值;将所述能量线中每个像素点对应的融合像素值作为新像素点的像素值;在所述能量线的每个像素点与相邻像素点之间插入所述新像素点,得到放大后图像。
在一些实施例中,所述融合模块5554还用于确定所述能量线中每个像素点的第一融合权重,并确定所述能量线中每个像素点的相邻像素点的第二融合权重;基于所述第一融合权重和所述第二融合权重,对所述能量线中每个像素点的像素值与所述相邻像素点的像素值进行加权求和,得到所述能量线中每个像素点对应的融合像素值。
在一些实施例中,所述融合模块5554还用于当所述缩放处理为缩小处理时,从所述待处理图像中移除所述能量线;将所述能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到所述能量线中每个像素点对应的融合像素值;将所述能量线中每个像素点的相邻像素点的像素值,更新为所述能量线中每个像素点对应的融合像素值;将所述待处理图像中位于所述能量线第一侧的像素点向第二侧进行平移,得到缩小后图像。
在一些实施例中,所述装置还包括:缩放模块5556,用于通过下采样处理将所述待处理图像缩小目标倍数;对缩小目标倍数后的所述待处理图像进行灰度处理,得到所述第一灰度图像;通过上采样处理将所述缩放后图像放大所述目标倍数。
在一些实施例中,所述第二确定模块5553还用于当所述缩放处理方向为竖直方向时,将所述待处理图像顺时针或逆时针旋转九十度;根据所述第二灰度图像中每个像素点的能量值,在旋转后的所述待处理图像中确定包括竖直排列的多个像素点的能量线。
综上,本申请实施例提供的图像的缩放处理装置具有以下有益效果:通过在待处理图像中确定与缩放处理方向匹配的能量线,并对待处理图像中与能量线相关联的多个像素点进行融合处理,从而基于像素粒度确定待处理图像的能量线,以实现自适应并准确地进行图像缩放;通过边缘检测算子对待处理图像的第一灰度图像进行更新,以节约了相关的计算资源,从而提高图像缩放的效率。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本申请实施例上述的图像的缩放处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的图像的缩放处理方法,例如,如图3-图5示出的图像的缩放处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (17)
1.一种图像的缩放处理方法,其特征在于,所述方法包括:
基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像;
确定所述第二灰度图像中每个像素点的能量值;
根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,其中,所述能量线包括的多个像素点的能量加和满足能量条件;
对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像。
2.如权利要求1所述的方法,其特征在于,所述基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像,包括:
确定边缘检测算子,其中,所述边缘检测算子包括用于检测水平边缘的横向矩阵和用于检测竖直边缘的纵向矩阵;
基于所述横向矩阵与所述第一灰度图像进行平面卷积处理,得到所述第一灰度图像中每个像素点的水平梯度;
基于所述纵向矩阵与所述第一灰度图像作进行平面卷积处理,得到所述第一灰度图像中每个像素点的竖直梯度;
根据所述第一灰度图像中每个像素点的水平梯度和竖直梯度,确定所述第一灰度图像中每个像素点的综合梯度;
基于所述第一灰度图像中每个像素点的综合梯度,更新所述第一灰度图像中每个像素点的像素值,得到第二灰度图像。
3.如权利要求1所述的方法,其特征在于,所述确定所述第二灰度图像中每个像素点的能量值,包括:
对所述第二灰度图像进行滤波处理,得到与所述第二灰度图像相同尺寸的锐化图像;
将所述锐化图像中每个像素点的像素值,作为所述第二灰度图像中相同位置的像素点的能量值。
4.如权利要求1所述的方法,其特征在于,所述在所述待处理图像中确定与缩放处理方向匹配的能量线之前,所述方法还包括:
对所述待处理图像中的目标对象进行识别处理,得到所述目标对象在所述待处理图像所处的区域;
将所述区域标记为在确定所述能量线时需要忽略的无效区域。
5.如权利要求1所述的方法,其特征在于,所述根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,包括:
当缩放处理方向为水平方向时,确定所述待处理图像中每列像素点的能量加和,并将能量加和最小的一列像素点作为与水平方向匹配的能量线;
当缩放处理方向为竖直方向时,确定所述待处理图像中每行像素点的能量加和,并将能量加和最小的一行像素点作为与竖直方向匹配的能量线。
6.如权利要求1所述的方法,其特征在于,所述根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,包括:
当所述缩放处理方向为水平方向时,确定所述待处理图像的每行像素点中每个像素点的能量消耗值,其中,所述能量消耗值是特定路径所包括的像素点的能量值的加和,所述特定路径是从所述每行像素点中每个像素点到所述待处理图像的最后一行像素点的路径;
根据所述待处理图像的每行像素点中每个像素点的能量消耗值,确定所述每行像素点中的目标像素点;
将所述每行像素点中的目标像素点进行组合,得到所述待处理图像中与水平方向匹配的能量线。
9.如权利要求1所述的方法,其特征在于,所述对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像,包括:
当所述缩放处理为放大处理时,将所述能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到所述能量线中每个像素点对应的融合像素值;
将所述能量线中每个像素点对应的融合像素值作为新像素点的像素值;
在所述能量线的每个像素点与相邻像素点之间插入所述新像素点,得到放大后图像。
10.如权利要求9所述的方法,其特征在于,所述将所述能量线包含的每像素点的像素值与相邻像素点的像素值进行融合处理,得到所述能量线中每个像素点对应的融合像素值,包括:
确定所述能量线中每个像素点的第一融合权重,并确定所述能量线中每个像素点的相邻像素点的第二融合权重;
基于所述第一融合权重和所述第二融合权重,对所述能量线中每个像素点的像素值与所述相邻像素点的像素值进行加权求和,得到所述能量线中每个像素点对应的融合像素值。
11.如权利要求1所述的方法,其特征在于,所述对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像,包括:
当所述缩放处理为缩小处理时,从所述待处理图像中移除所述能量线;
将所述能量线中每个像素点的像素值与相邻像素点的像素值进行融合处理,得到所述能量线中每个像素点对应的融合像素值;
将所述能量线中每个像素点的相邻像素点的像素值,更新为所述能量线中每个像素点对应的融合像素值;
将所述待处理图像中位于所述能量线第一侧的像素点向第二侧进行平移,得到缩小后图像。
12.如权利要求1所述的方法,其特征在于,所述基于边缘检测算子对待处理图像的第一灰度图像进行更新之前,所述方法还包括:
通过下采样处理将所述待处理图像缩小目标倍数;
对缩小目标倍数后的所述待处理图像进行灰度处理,得到所述第一灰度图像;
所述对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像之后,所述方法还包括:
通过上采样处理将所述缩放后图像放大所述目标倍数。
13.如权利要求1所述的方法,其特征在于,所述根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,包括:
当所述缩放处理方向为竖直方向时,将所述待处理图像顺时针或逆时针旋转九十度;
根据所述第二灰度图像中每个像素点的能量值,在旋转后的所述待处理图像中确定包括竖直排列的多个像素点的能量线。
14.一种图像的缩放处理装置,其特征在于,所述装置包括:
更新模块,用于基于边缘检测算子对待处理图像的第一灰度图像进行更新,得到第二灰度图像;
第一确定模块,用于确定所述第二灰度图像中每个像素点的能量值;
第二确定模块,用于根据所述第二灰度图像中每个像素点的能量值,在所述待处理图像中确定与缩放处理方向匹配的能量线,其中,所述能量线包括的多个像素点的能量加和满足能量条件;
融合模块,用于对所述待处理图像中与所述能量线相关联的多个像素点进行融合处理,得到缩放后图像。
15.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至13任一项所述的图像的缩放处理方法。
16.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至13任一项所述的图像的缩放处理方法。
17.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至13任一项所述的图像的缩放处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111126168.3A CN113592720B (zh) | 2021-09-26 | 2021-09-26 | 图像的缩放处理方法、装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111126168.3A CN113592720B (zh) | 2021-09-26 | 2021-09-26 | 图像的缩放处理方法、装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113592720A true CN113592720A (zh) | 2021-11-02 |
CN113592720B CN113592720B (zh) | 2022-02-18 |
Family
ID=78242354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111126168.3A Active CN113592720B (zh) | 2021-09-26 | 2021-09-26 | 图像的缩放处理方法、装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113592720B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113933842A (zh) * | 2021-12-21 | 2022-01-14 | 南京天朗防务科技有限公司 | Sar图像快速交互显示方法和电子装置 |
CN115348437A (zh) * | 2022-07-29 | 2022-11-15 | 泽景(西安)汽车电子有限责任公司 | 视频处理方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090033683A1 (en) * | 2007-06-13 | 2009-02-05 | Jeremy Schiff | Method, system and apparatus for intelligent resizing of images |
CN101777175A (zh) * | 2008-07-31 | 2010-07-14 | 奥多比公司 | 对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大 |
US20130084020A1 (en) * | 2011-10-03 | 2013-04-04 | Board Of Trustees Of Michigan State University | Generalized Multiscale Seam Carving Framework |
US20130127915A1 (en) * | 2009-05-20 | 2013-05-23 | Anant Gilra | System and Method for Content Aware Hybrid Cropping and Seam Carving of Images |
CN105488758A (zh) * | 2015-11-30 | 2016-04-13 | 河北工业大学 | 一种基于内容感知的图像缩放方法 |
CN108537806A (zh) * | 2018-04-17 | 2018-09-14 | 福州大学 | 一种基于累积能量的立体图像线裁剪重定向方法 |
CN109447942A (zh) * | 2018-09-14 | 2019-03-08 | 平安科技(深圳)有限公司 | 图像模糊度确定方法、装置、计算机设备及存储介质 |
CN109711419A (zh) * | 2018-12-14 | 2019-05-03 | 深圳壹账通智能科技有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
CN112288665A (zh) * | 2020-09-30 | 2021-01-29 | 北京大米科技有限公司 | 图像融合的方法、装置、存储介质及电子设备 |
-
2021
- 2021-09-26 CN CN202111126168.3A patent/CN113592720B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090033683A1 (en) * | 2007-06-13 | 2009-02-05 | Jeremy Schiff | Method, system and apparatus for intelligent resizing of images |
CN101777175A (zh) * | 2008-07-31 | 2010-07-14 | 奥多比公司 | 对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大 |
US20130127915A1 (en) * | 2009-05-20 | 2013-05-23 | Anant Gilra | System and Method for Content Aware Hybrid Cropping and Seam Carving of Images |
US20130084020A1 (en) * | 2011-10-03 | 2013-04-04 | Board Of Trustees Of Michigan State University | Generalized Multiscale Seam Carving Framework |
CN105488758A (zh) * | 2015-11-30 | 2016-04-13 | 河北工业大学 | 一种基于内容感知的图像缩放方法 |
CN108537806A (zh) * | 2018-04-17 | 2018-09-14 | 福州大学 | 一种基于累积能量的立体图像线裁剪重定向方法 |
CN109447942A (zh) * | 2018-09-14 | 2019-03-08 | 平安科技(深圳)有限公司 | 图像模糊度确定方法、装置、计算机设备及存储介质 |
CN109711419A (zh) * | 2018-12-14 | 2019-05-03 | 深圳壹账通智能科技有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
CN112288665A (zh) * | 2020-09-30 | 2021-01-29 | 北京大米科技有限公司 | 图像融合的方法、装置、存储介质及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113933842A (zh) * | 2021-12-21 | 2022-01-14 | 南京天朗防务科技有限公司 | Sar图像快速交互显示方法和电子装置 |
CN115348437A (zh) * | 2022-07-29 | 2022-11-15 | 泽景(西安)汽车电子有限责任公司 | 视频处理方法、装置、设备及存储介质 |
CN115348437B (zh) * | 2022-07-29 | 2023-10-31 | 泽景(西安)汽车电子有限责任公司 | 视频处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113592720B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112348783B (zh) | 基于图像的人物识别方法、装置及计算机可读存储介质 | |
CN113592720B (zh) | 图像的缩放处理方法、装置、设备、存储介质 | |
JP2014010621A (ja) | 最適画像サイズによる画像領域分割装置、方法、およびプログラム | |
CN111524150A (zh) | 图像处理的方法及装置 | |
CN111595850A (zh) | 切片缺陷检测方法、电子装置及可读存储介质 | |
CN112036400B (zh) | 构建用于目标检测的网络的方法和目标检测方法及系统 | |
CN112712014B (zh) | 表格图片结构解析方法、系统、设备和可读存储介质 | |
JP2021135993A (ja) | テキスト認識方法及びテキスト認識装置、電子設備、記憶媒体 | |
CN113159026A (zh) | 图像处理方法、装置、电子设备和介质 | |
CN113538502A (zh) | 图片裁剪方法、装置、电子设备及存储介质 | |
CN112380978A (zh) | 基于关键点定位的多人脸检测方法、系统及存储介质 | |
EP4075381B1 (en) | Image processing method and system | |
CN114266901A (zh) | 文档轮廓提取模型构建方法、装置、设备及可读存储介质 | |
CN114065868B (zh) | 文本检测模型的训练方法、文本检测方法及装置 | |
CN115205113A (zh) | 一种图像拼接方法、装置、设备及存储介质 | |
CN115100663A (zh) | 文档图像中文字高度的分布情况估计方法及装置 | |
CN112101376A (zh) | 图像处理方法、装置、电子设备和计算机可读介质 | |
CN114445277A (zh) | 深度图像像素增强方法、装置及计算机可读存储介质 | |
CN114155540A (zh) | 基于深度学习的文字识别方法、装置、设备及存储介质 | |
CN112308036A (zh) | 票据识别方法、装置及可读存储介质 | |
CN113012132A (zh) | 一种图像相似度确定方法、装置及计算设备、存储介质 | |
CN113011132A (zh) | 竖排文字识别方法、装置、计算机设备和存储介质 | |
CN107239463B (zh) | 一种景区地图生成方法及装置 | |
CN111383193A (zh) | 图像修复方法和装置 | |
CN112825141B (zh) | 识别文本的方法、装置、识别设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40054553 Country of ref document: HK |