本发明涉及计算机应用技术领域,特别是涉及一种图片拼接方法、装置、电子设备及介质。
背景技术:
图片拼接是将多张图片拼接在一起,现有的图片拼接方法都是以固定比例对图片进行拼接的,这样可能会导致图片中人的脸部或者身体部分被裁剪掉,可以参见图1及图2,图1是现有技术中图片拼接的一种效果示意图,图2为图1所示的效果示意图中右侧图片的原图。可见,由于三张图片的比例是固定的,导致右侧图片中人物的身体部分被裁剪掉,影响拼接图片的整体效果。
为了避免上述情况的出现,目前主要的技术方案是手动调整拼接的比例,以使得各个图片的主体部分完整显示,但是这种方法需要用户手动进行,费时费力。
技术实现要素:
本发明实施例的目的在于提供一种图片拼接方法、装置、电子设备及介质,以在提高拼接图的整体效果的情况下,解决了图片拼接中的费时费力的问题。具体技术方案如下:
为实现上述目的,本发明实施例提供了一种图片拼接方法,所述方法包括:
获取n个待拼接图片,n为大于2的整数;
确定用于拼接所述n个待拼接图片的目标拼接框架;
通过所述目标拼接框架展示所述n个待拼接图片中每个待拼接图片的主体,使得所述n个待拼接图片中的每个待拼接图片的主体均完全显示。
可选的,所述通过所述目标拼接框架展示所述n个待拼接图片中每个待拼接图片的主体,包括:
确定所述n个待拼接图片中的每个待拼接图片的主体;
将所述n个待拼接图片分别填入所述目标拼接框架中的拼接框内;
判断所述目标拼接框架中的拼接框内每个待拼接图片的主体是否完全显示;
若否,则调整所述目标拼接框架,使得每个待拼接图片的主体均完全显示。
可选的,确定所述n个待拼接图片中的每个待拼接图片的主体,包括:
采用深度学习图像语义分割技术确定当前待拼接图片中每个物体和人物在所述当前待拼接图片中所占的面积;
判断所述当前待拼接图片中是否包含人物;
若是,则将所述当前待拼接图片中的面积最大的人物确定为所述当前待拼接图片的主体;
若否,则将所述当前待拼接图片中的面积最大的物体确定为所述当前待拼接图片的主体。
可选的,所述确定用于拼接所述n个待拼接图片的目标拼接框架,包括:
根据所述n个待拼接图片,从预先存储的拼接框架库中,确定所述目标拼接框架,使得所述目标拼接框架能够放置所述n个待拼接图片;或
接收用户输入的选择指令,所述选择指令包括拼接框架,将所述选择指令中包括的拼接框架确定为目标拼接框架。
可选的,所述调整所述目标拼接框架,包括:
根据确定的所述n个待拼接图片中的每个待拼接图片的主体的尺寸,调整所述目标拼接框架中各个拼接框的尺寸,使得所述n个待拼接图片中的每个待拼接图片的主体完全显示在所述目标拼接框架中各个拼接框内。
为实现上述目的,本发明实施例提供了一种图片拼接装置,所述装置包括:
获取模块,用于获取n个待拼接图片,n为大于2的整数;
确定模块,用于拼接所述n个待拼接图片的目标拼接框架;
展示模块,用于通过所述目标拼接框架展示所述n个待拼接图片中每个待拼接图片的主体,使得所述n个待拼接图片中的每个待拼接图片的主体均完全显示。
可选的,所述展示模块,包括:确定子模块,拼接子模块,判断子模块,调整子模块,
所述确定子模块,具体用于:确定所述n个待拼接图片中的每个待拼接图片的主体;
所述拼接子模块,具体用于:将所述n个待拼接图片分别填入所述目标拼接框架中的拼接框内;
所述判断子模块,具体用于:判断所述目标拼接框架中的拼接框内每个待拼接图片的主体是否完全显示;
所述调整子模块,具体用于:调整所述目标拼接框架,使得每个待拼接图片的主体均完全显示。
可选的,所述确定子模块,具体用于:
采用深度学习图像语义分割技术确定当前待拼接图片中每个物体和人物在所述当前待拼接图片中所占的面积;
判断所述当前待拼接图片中是否包含人物;
若是,则将所述当前待拼接图片中的面积最大的人物确定为所述当前待拼接图片的主体;
若否,则将所述当前待拼接图片中的面积最大的物体确定为所述当前待拼接图片的主体。
可选的,所述确定模块,具体用于:
根据所述n个待拼接图片,从预先存储的拼接框架库中,确定所述目标拼接框架,使得所述目标拼接框架能够放置所述n个待拼接图片;或
接收用户输入的选择指令,所述选择指令包括拼接框架,将所述选择指令中包括的拼接框架确定为目标拼接框架。
可选的,所述调整子模块,具体用于:
根据确定的所述n个待拼接图片中的每个待拼接图片的主体的尺寸,调整所述目标拼接框架中各个拼接框的尺寸,使得所述n个待拼接图片中的每个待拼接图片的主体完全显示在所述目标拼接框架中各个拼接框内。
为实现上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一方法步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。
本发明实施例提供的图片拼接方法、装置、电子设备及介质,电子设备先获取各个待拼接图片,再确定包含一定数量个拼接框的拼接框架,通过拼接框架中的拼接框展示每个待拼接图片的主体,使得每个待拼接图片的主体均完全显示。从而在提高拼接图整体效果的情况下,解决了用户手动进行操作带来的费时费力的问题。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为未应用本发明实施例提供的图片拼接方法的图片拼接的一种效果示意图;
图2为图1所示的效果示意图中右侧图片的原图;
图3为本发明实施例提供的图片拼接方法的一种流程图;
图4为本发明实施例提供的图片拼接方法的另一种流程图;
图5为本发明实施例提供的拼接框架的一种示意图;
图6为本发明实施例提供的使用深度学习图像语义分割技术处理待拼接图片的一种示意图;
图7为本发明实施例提供的使用深度学习图像语义分割技术处理待拼接图片的另一种示意图;
图8为应用本发明实施例提供的图片拼接方法对图1进行图片拼接的一种效果示意图;
图9为未应用本发明实施例提供的图片拼接方法的图片拼接的另一种效果示意图;
图10为应用本发明实施例提供的图片拼接方法对图8进行图片拼接的一种效果示意图;
图11为本发明实施例提供的图片拼接装置的一种结构示意图;
图12为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决用户手动调节拼接比例,费时费力的问题,本发明实施例提供了一种图片拼接方法。
参见图3,图3为本发明实施例提供的图片拼接方法的一种流程图,该方法包括以下步骤:
s301:获取n个待拼接图片,n为大于2的整数。
s302:确定用于拼接n个待拼接图片的目标拼接框架。
在步骤中,需要选取目标拼接框架,其中,目标拼接框架是用于拼接n个待拼接图片的。为了保证每个待拼接图片都能进行拼接,目标拼接框架中拼接框的数量应大于等于n。在一种实施方式中,目标拼接框架中拼接框的数量等于n,以获取到拼接效果较好的拼接图。
s303:通过目标拼接框架展示n个待拼接图片中每个待拼接图片的主体,使得n个待拼接图片中的每个待拼接图片的主体均完全显示。
在本发明实施例中,能够通过目标拼接框架的拼接框展示第一数量n个待拼接图片中每个待拼接图片的主体,且每个待拼接图片的主体均完全显示。
可见,使用本发明实施例提供的图片拼接方法,电子设备先获取各个待拼接图片,再确定包含一定数量个拼接框的拼接框架,通过拼接框架中的拼接框展示每个待拼接图片的主体,使得每个待拼接图片的主体均完全显示。从而在提高拼接图整体效果的情况下,解决了用户手动进行操作带来的费时费力的问题。
在本发明的另一实施例中,参见图4,可以包括以下步骤:
s401:获取n个待拼接图片;
s402:确定用于拼接n个待拼接图片的目标拼接框架;
在本发明的一种实现方式中,可以预先存储许多拼接框架,这些拼接框架中包括许多拼接框数量相同的拼接框架。如图5所示的多个包含3个拼接框的拼接框架。在确定目标拼接框架时,可以从预先存储的拼接框架库中,确定目标拼接框架,该目标拼接框架能够放置n个待拼接图片。
在本发明的另一种实现方式中,在确定目标拼接框架时,可以接收用户输入的选择指令,其中,选择指令中包括拼接框架,可以将选择指令中包括的拼接框架确定为目标拼接框架。
s403:确定n个待拼接图片中的每个待拼接图片的主体;
在本发明的一种实现方式中,对于每个待拼接图片,可以采用以下步骤确定该待拼接图片的主体。
步骤11:采用深度学习图像语义分割技术确定当前待拼接图片中每个物体和人物所占的面积。
其中,图像语义分割是指将图像中的像素按照表达的语义不同而分成不同的类别,例如可以通过语义分割技术识别出图像中的草地、树木、人物等。
本发明实施例中,可以将卷积神经网络应用于图像语义分割技术中,通过训练卷积神经网络得到用于进行图像语义分割的深度学习模型。然后将待拼接图片输入该深度学习模型中,即可得到待拼接图片的分布图。得到待拼接图片中分布图后,可以计算每个物体和人物在待拼接图片中所占的面积。
以图6为例进行说明。图6中左侧的图片为一个待拼接图片,包括天空,树木,人物和草地,通过深度学习图像语义分割技术可以确定该图片的分布图,可参考图6中右侧的图片,随后可以计算天空、树木、人物以及草地各自所占的面积。
一种实现方式中,也可以计算各个物体和人物在待拼接图片中所占的面积比例,以更直观的比较各个物体的大小。
本发明实施例中,物体和人物在待拼接图片中所占的面积,可以用像素点个数表示。例如,在待拼接图片中物体1所在区域中包括10个像素点,则物体1在待拼接图片中所占的面积为10个像素点。
步骤12:判断该待拼接图片中是否包含人物,是则执行步骤13,否则执行步骤14。
步骤13:将当前待拼接图片中的面积最大的人物确定为当前待拼接图片的主体。
在本发明的一种实现方式中,若判断出当前待拼接图片中包含人物,则当前待拼接图片的主体是人物。具体的,可以将当前待拼接图片中面积最大的人物确定为当前待拼接图片的主体。
作为一个例子,可以参见上述图6,图6左侧的图片为一个待拼接图片,在上述实施例中,已经得出该待拼接图片中包括天空、树木、人物以及草地等各个物体的面积,判断其中是否包含人物,由于该待拼接图片中包含人物,因此,虽然面积最大的物体为草地,但仍将人物中面积最大的人物确定为该待拼接图片的主体。图6中只包括一个人物,因此直接将该人物作为面积最大的人物,确定为该待拼接图片的主体。
步骤14:将当前待拼接图片中的面积最大的物体确定为当前待拼接图片的主体。
在本发明的一种实现方式中,若判断出当前待拼接图片中不包含人物,则当前待拼接图片的主体是物体。具体的,可以将当前待拼接图片中面积最大的物体确定为当前待拼接图片的主体。
作为一个例子,如图7所示,假设图7右侧的图片是一个待拼接图片,通过深度学习图像语义分割技术可以确定该图片中包括屏幕、书架、墙壁、镜框、柜子、桌子、柜橱、地板和沙发,在得到该分类结果后,可以计算各个物体所占的面积。由于图7中不包括人物,而桌子所占的面积最大,因此可以将桌子作为该待拼接图片的主体。
s404:将n个待拼接图片分别填入目标拼接框架中的拼接框内;
在将待拼接图片填入拼接框时,可以根据拼接框的宽高比例,以及待拼接图片的宽高比例,决定待拼接图片以长边撑满还是短边撑满。例如,待拼接图片的宽高比例为3:4,拼接框的宽高比例为4:4,那么待拼接图片会以短边撑满的方式填入拼接框;作为另一个例子,待拼接图片的宽高比例为3:4,拼接框的宽高比例为3:5,那么待拼接图片会以长边撑满的方式填入拼接框。
由于拼接框的宽高比例与待拼接图片的宽高比例不完全一致,在以长边撑满或短边撑满的方式将待拼接图片填入拼接框之后,待拼接图片的一部分内容将无法显示在拼接框中。
任何将待拼接图片填入拼接框的方法均可应用于本发明实施例中,在此不做赘述。
s405:判断目标拼接框架中的拼接框内每个待拼接图片的主体是否完全显示。若否,则执行s406。
在s403中,已经确定了每个待拼接图片的主体。在本步骤中,可以判断目标拼接框架中的拼接框内每个待拼接图片的主体是否完全显示。
作为一种示例,可以参见上述图1,图1所示的拼接图中,左侧两张图片的主体均为人物,且已经完全显示。右侧图片中的主体也为人物,该人物的身体部位被裁剪掉了,没有完全显示。
s406:调整目标拼接框架,使得每个待拼接图片的主体均完全显示。
本发明的一种实施例中,在目标拼接框中存在一张或多种待拼接图片的主体未完全显示,调整目标拼接框架时,可以确定目标拼接框中待拼接图片的主体的大小。待拼接图片的主体的大小可以以待拼接图片的主体的宽高来表示。一种实现方式中,为了节约计算资源,可以仅计算待拼接图片中未完全显示的主体的大小。
确定目标拼接框中待拼接图片的主体的大小后,根据目标拼接框中待拼接图片的主体的大小,调整目标拼接框架中各个拼接框的尺寸。在调整各个拼接框的尺寸时,可以延长目标拼接框的边长使得目标拼接框中待拼接图片的主体完全显示。
仍以上述图1为例,图1所示的拼接图中右侧图片的主体没有完全显示,则计算右侧图片的主体的大小。若计算出的右侧图片的主体的宽为10cm,而此时在右侧拼接框中显示的主体部分的宽为6cm,则可以将右侧拼接框的宽度延伸4cm,使得右侧图片的主体能够在右侧拼接框中完全显示,如图8所示。
作为一种示例,可以参见图9,图9为未应用本发明实施例提供的图片拼接方法的图片拼接的一种效果示意图。图9中,左上角拼接框中图片的主体没有完全显示。为了使图片的主体完全显示,本发明实施例中,可以延长左上角拼接框的短边,使得左上角拼接框中图片的主体完全显示,此时,为了保证拼接图整齐,可以将左下角的拼接框的短边延长相同的长度。调整拼接框架后的拼接图效果可以参见图10。
可见,本发明实施例中,电子设备确定各个待拼接图片的主体,在确定目标拼接框架后,将待拼接图片分别填入目标拼接框架的拼接框中,得到拼接图。然后判断拼接图中每个待拼接图片的主体是否完全显示,若没有完全显示,则调整目标拼接框架,使得每个待拼接图片的主体均完全显示,从而在提高拼接图整体效果的情况下,解决了用户手动进行操作带来的费时费力的问题。
基于相同的发明构思,根据上述图片拼接方法实施例,本发明实施例还提供了一种图片拼接装置,参见图11,可以包括以下模块:
获取模块1101,用于获取n个待拼接图片,n为大于2的整数;
确定模块1102,用于拼接n个待拼接图片的目标拼接框架;
在本发明实施例中,确定模块1102,具体可以用于:
根据n个待拼接图片,从预先存储的拼接框架库中,确定目标拼接框架,使得目标拼接框架能够放置n个待拼接图片;或
接收用户输入的选择指令,选择指令包括拼接框架,将选择指令中包括的拼接框架确定为目标拼接框架。
展示模块1103,用于通过目标拼接框架展示n个待拼接图片中每个待拼接图片的主体,使得n个待拼接图片中的每个待拼接图片的主体均完全显示。
在本发明的一种实施例中,展示模块1103,具体可以包括:确定子模块,拼接子模块,判断子模块,调整子模块。
其中,确定子模块,具体可以用于:确定n个待拼接图片中的每个待拼接图片的主体;
拼接子模块,具体可以用于:将n个待拼接图片分别填入目标拼接框架中的拼接框内;
判断子模块,具体可以用于:判断目标拼接框架中的拼接框内每个待拼接图片的主体是否完全显示;
调整子模块,具体可以用于:调整目标拼接框架,使得每个待拼接图片的主体均完全显示。
本发明实施例中,确定子模块,具体可以用于:
采用深度学习图像语义分割技术确定当前待拼接图片中每个物体和人物在当前待拼接图片中所占的面积;
判断当前待拼接图片中是否包含人物;
若是,则将当前待拼接图片中的面积最大的人物确定为当前待拼接图片的主体;
若否,则将当前待拼接图片中的面积最大的物体确定为当前待拼接图片的主体。
在本发明实施例中,调整子模块,具体可以用于:
根据确定的n个待拼接图片中的每个待拼接图片的主体的尺寸,调整目标拼接框架中各个拼接框的尺寸,使得n个待拼接图片中的每个待拼接图片的主体完全显示在目标拼接框架中各个拼接框内。
可见,本发明实施例中,电子设备确定各个待拼接图片的主体,在确定目标拼接框架后,将待拼接图片分别填入目标拼接框架的拼接框中,得到拼接图。然后判断拼接图中每个待拼接图片的主体是否完全显示,若没有完全显示,则调整拼接框架,使得每个待拼接图片的主体均完全显示,从而在提高拼接图整体效果的情况下,解决了用户手动进行操作带来的费时费力的问题。
基于相同的发明构思,根据上述图片拼接方法实施例,本发明实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现如下步骤:
获取n个待拼接图片,n为大于2的整数;
确定用于拼接n个待拼接图片的目标拼接框架;
通过目标拼接框架展示n个待拼接图片中每个待拼接图片的主体,使得n个待拼接图片中的每个待拼接图片的主体均完全显示。
上述电子设备提到的通信总线1204可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线1204可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1202用于上述电子设备与其他设备之间的通信。
存储器1203可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器1203还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器1201可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于相同的发明构思,根据上述图片拼接方法实施例,在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述图3所示的图片拼接方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。