CN117333361A - 用于进行插值处理的方法、装置及计算机可读介质 - Google Patents
用于进行插值处理的方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN117333361A CN117333361A CN202311203991.9A CN202311203991A CN117333361A CN 117333361 A CN117333361 A CN 117333361A CN 202311203991 A CN202311203991 A CN 202311203991A CN 117333361 A CN117333361 A CN 117333361A
- Authority
- CN
- China
- Prior art keywords
- pixel point
- target
- rendered
- current pixel
- interpolation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 238000009877 rendering Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 abstract description 10
- 239000000463 material Substances 0.000 description 9
- 238000010606 normalization Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/4023—Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- 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/403—Edge-driven scaling; Edge-based scaling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种用于进行插值处理的方法、装置及计算机可读介质。根据本申请的方法包括:获取待渲染图形中当前像素点周围预定数量的目标像素点;基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘;如果所述当前像素点位于待渲染图形的边缘,则采用目标插值法来对所述当前像素点进行插值处理,所述目标插值法不会在插值处理后产生黑边或锯齿。本申请需要对图片进行渲染处理时通过像素点周围的有效像素点个数来判断该像素点在待渲染图形中的位置,如果像素点位于待渲染图像的边缘,则采用特定的插值法来进行插值处理,以避免在渲染图形的边缘产生黑边或锯齿,提升了渲染效果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于进行插值处理的方法、装置及计算机可读介质。
背景技术
基于现有技术的图像渲染方案,在对图像边缘上的像素点进行插值时可能会产生锯齿或黑边,进而影响图像渲染效果。例如,基于现有技术的OpenGL方案一般采用最近邻插值法和线性插值法来进行插值,基于该方式在进行素材图像渲染时在图像的边缘处会产生锯齿和黑边。
发明内容
本申请的多个方面提供一种用于进行插值处理的方法、装置及计算机可读介质。
本申请的一方面,提供一种用于进行插值处理的方法,其中,所述方法包括:
获取待渲染图形中当前像素点周围预定数量的目标像素点;
基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘;
如果所述当前像素点位于待渲染图形的边缘,则采用目标插值法来对所述当前像素点进行插值处理,所述目标插值法不会在插值处理后产生黑边或锯齿。
本申请的一方面,提供用于进行插值处理的装置,其中,所述装置包括:
用于获取待渲染图形中当前像素点周围预定数量的目标像素点的装置;
用于基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘的装置;
用于如果所述当前像素点位于待渲染图形的边缘,则采用目标插值法来对所述当前像素点进行插值处理的装置,所述目标插值法不会在插值处理后产生黑边或锯齿。
本申请的另一方面,提供一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行申请实施例的方法。
本申请的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现申请实施例的方法。
本申请实施例提供的方案中,需要对图片进行渲染处理时通过像素点周围的有效像素点个数来判断该像素点在待渲染图形中的位置,如果像素点位于待渲染图像的边缘,则采用特定的插值法来进行插值处理,以避免在渲染图形的边缘产生黑边或锯齿,提升了渲染效果;基于像素点所在位置的不同而采用相应的插值方法来计算该像素点的颜色值和透明度,进一步提上了渲染效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了本申请实施例提供的一种用于进行插值处理的方法的流程示意图;
图2示出了本申请实施例提供的一种用于进行插值处理的装置的结构示意图;
图3示出了适用于实现本申请实施例中的方案的一种设备的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机程序指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
图1示出了本申请实施例提供的一种用于进行插值处理的方法的流程示意图。所述方法至少包括步骤S101、步骤S102和步骤S103。
其中,所述方法的执行主体可以是客户端设备、或者也可以是运行于客户端设备的应用程序,所述客户端设备包括但不限于计算机、手机、平板电脑、智能手表、手环等各类终端设备。
可选地,本申请实施例的方法适用于OpenGL(Open Graphics Library)。OpenGL是一种应用程序编程接口(API),是一种可以对图形硬件设备特性进行访问的软件库,其采用客户端-服务端的形式,编写的程序可以看作客户端,计算机图形硬件厂商提供的OpenGL实现可以看作服务端。OpenGL中通过渲染管线将应用程序的数据转换到最终渲染的图像的主要包括:接收用户提供的几何数据,包括顶点和几何图元,并将该几何数据输入到一系列着色器阶段中进行处理。所述着色器阶段包括顶点着色、细分着色(本身包含两个着色器)以及最后的几何着色,然后它将被送入光栅化单元(rasterizer)。其中,所述光栅化单元负责对所有剪切区域内的图元生成片元数据,然后对每个生成的片元都执行一个片元着色器。
然而,基于现有技术的OpenGL一般方案采用最近邻插值法和线性插值法来进行插值,基于该方式在进行素材图像渲染时在图像的边缘处会产生锯齿和黑边。例如,基于LIVE2d生成的素材用OpenGL渲染后通过截图导出PNG格式的图像时,图像边缘由于α值为零,导出识别为黑色,RGB信息丢失,从而产生黑边。
参照图1,在步骤S101中,获取待渲染图形中当前像素点周围预定数量的目标像素点。
其中,所述待渲染图形包含于渲染画面,所述渲染画面包括多个待进行插值处理的像素点。
其中,所述当前像素点为将要进行插值处理的像素点。
具体地,所述方法获取渲染画面中当前像素点的坐标信息,并基于该坐标信息确定渲染画面对应的素材图片的像素点坐标。接着,在素材图片中,获取当前像素点对应位置附近的预定数量的目标像素点。
其中,所述预定数量大于或等于四。
其中,所述方法可基于以下任一种方式来选择所述预定数量的目标像素点:
1)将所述当前像素点作为中心像素点,基于中心像素点的坐标信息,随机地选择与中心像素点相邻的预定数量的像素点作为目标像素点;
2)将所述当前像素点作为中心像素点,基于中心像素点的坐标信息,分别在特定的方向上选择与中心像素点邻近的预定数量的目标像素点。
例如,将当前像素点在其上、下、左和右四个方向上的相邻的4个像素点作为目标像素点。
又例如,将当前像素点在其上、下、左、右、左上、左下、右上和右下八个方向上相邻的8个像素点作为目标像素点。
在步骤S102中,基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于所述待渲染图像的边缘。
其中,所述有效像素点为参与感光成像并对颜色有贡献的像素点。
具体地,假设目标像素点的数量为N(N大于或等于4),如果其中有效像素点的数量为1至N-1,则确定所述当前像素点是否位于所述待渲染图像的边缘。
在步骤S103中,如果所述当前像素点位于所述渲染图形的边缘,则采用目标插值法来对所述当前像素点进行插值处理。
其中,所述插值处理用于将CCD感光元件所形成的实际像素数进行一定程度的模糊处理后,在空隙间进行填充,从而增加图像的像素值。
其中,所述目标插值法不会在插值处理后产生黑边或锯齿。
可选地,所述目标插值法包括重心坐标插值法、距离归一化插值法等不会在插值处理后产生黑边或锯齿的插值法。需要说明的是,本领域技术人员应熟悉基于诸如重心坐标插值法或距离归一化插值法等插值方法来进行插值处理的过程,此处不再赘述。
可选地,如果所述当前像素点位于所述渲染图形的边缘并且目标像素点中有效像素点的数量为一个,所述目标插值法采用最近邻插值法。由于仅有一个有效像素点用于进行插值处理,并且出现周围仅有一个有效像素点的情况的概率较小,使用最近邻插值法不会产生锯齿效果,并且可获得较快的计算速度。
根据一个实施例,所述步骤S103包括步骤S1031和步骤S1032。
在步骤S1031中,基于目标插值法来计算当前像素点的颜色值。
在步骤S1032中,基于有效像素点占全部目标像素点的百分比,得到当前像素点的透明度。
根据一个实施例,所述方法针对不同的有效像素点的个数采用相应的目标插值法来进行插值处理,所述步骤S103包括步骤S1033和步骤S1034。
在步骤S1033中,基于预存储的有效像素点个数和目标插值法的对应关系,确定对应于当前目标像素点中有效像素点的个数的目标插值法。
具体地,在数据库中建立和存储有效像素点个数和目标插值法的对应关系。如果所述当前像素点位于待渲染图形的边缘,基于该预存储的有效像素点个数和目标插值法的对应关系,确定对应于当前目标像素点中有效像素点的个数的目标插值法。
在步骤S1034中,采用所确定的目标插值法来对所述当前像素点进行插值处理。
例如,假设所述方法获取当前像素点上下左右方向上的4个相邻像素点作为目标像素点。并且,在数据库中存储有效像素点个数和目标插值法的对应关系,该对应关系包括:3个有效像素点对应的目标插值法:重心坐标插值法;2个有效像素点对应的目标插值法:距离归一化插值法;1个有效像素点对应的目标插值法:最近邻插值法。基于该对应关系,如果当前目标像素点中有效像素点为2个,则采用距离归一化插值法来对当前像素点进行插值处理。
根据一个实施例,所述方法还包括步骤S104。
在步骤S104中,如果所述像素点不在所述渲染图形的边缘,进一步基于有效像素点的数量判断所述当前像素点的位置信息。
具体地,如果所述目标像素点均为有效像素点,则确定所述当前像素点位于渲染图形的内部,如果所述目标像素点中没有效像素点,则确定所述当前像素点位于渲染图形的外部。
可选地,根据本实施例的方法还包括步骤S105。
在步骤S105中,如果所述当前像素点位于渲染图形的内部,则采用第一插值法来进行插值处理并计算当前像素点的颜色值和透明度。
可选地,所述第一插值法为双线性插值法。
可选地,根据本实施例的方法还包括步骤S106。
在步骤S106中,如果所述当前像素点位于渲染图形的外部,则确定当前像素点的颜色值和透明度均为零。
类似地,对于渲染画面中所有待进行插值处理的像素点,所述方法通过执行上述步骤S101和步骤S102的操作来确定该像素点是否位于所述待渲染图像的边缘,接着基于该像素点所在的位置执行步骤S103、或步骤S104和步骤S105或步骤S106,来进行相应的插值处理。
根据本申请实施例的方法,需要对图片进行渲染处理时通过像素点周围的有效像素点个数来判断该像素点在待渲染图形中的位置,如果像素点位于待渲染图像的边缘,则采用特定的插值法来进行插值处理,以避免在渲染图形的边缘产生黑边或锯齿,提升了渲染效果;基于像素点所在位置的不同而采用相应的插值方法来计算该像素点的颜色值和透明度,进一步提上了渲染效果。
根据本申请的一个优选实施方案,所述方法获取当前像素点周围的四个目标像素点,以避免面运算复杂度过高。
具体地,根据本优选实施方案方法在步骤S101中获取当前像素点周围的四个目标像素点。其中,所述四个目标像素点分别位于所述当前像素点的上、下、左和右四个方向。在步骤S102中,如果所述四个目标像素点中有一至三个有效像素点,则确定所述当前像素点位于所述渲染画面的边缘。
下面结合一个示例来对该优选实施方案进行说明。
根据本示例的方法适用于OpenGL,并对OpenGL进行插值处理的方式进行了改进。所述方法基于当前像素点的坐标(x0,y0),上下左右四个方向上邻近的四个像素点作为目标像素点,该四个目标像素点坐标分别表示为(x1,y1),(x2,y2),(x3,y3)和(x4,y4),并将当前的像素点作为中心像素点。如果该四个目标像素点均为有效像素点,则确定该中心像素点在待渲染图形的内部,则中心像素点的最终颜色与透明度值采用双线性插值来计算。
如果该4个目标像素点中有3个、2个或1个有效像素点,则确定该中心像素点在待渲染图形的边缘,并分别采用重心坐标插值(对应于3个有效像素点)、距离归一化插值(对应于2个有效像素点)和最近邻插值(对应于1个有效像素点)来计算中心像素点的颜色值,并采用有效像素占全部像素的百分比来计算中心像素点的透明度。如果该4个目标像素点中没有有效像素点,则确定中心像素点位于待渲染图形的外部,并确定中心像素点的颜色值和透明度全部取0。
若当前像素点在原始素材中位于线条或者图像边缘上,如果采用现有方案的插值方式在最终插值时如果采用线性插值则会产生黑边,而如果用最近邻插值则会产生锯齿。
与之不同,基于本示例的方法通过当前像素点周围的4个像素点中有效像素点个数来判断当前像素点在待渲染图形中的位置,并基于不同的位置采用不同的插值方法来计算颜色值和透明度,从而避免在渲染图形的边缘产生黑边或锯齿。
此外,本申请实施例还提供了一种用于进行插值处理的装置,该装置的结构如图2所示。所述装置包括:用于获取待渲染图形中当前像素点周围预定数量的目标像素点的装置(以下简称“像素获取装置101”),用于基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘的装置(以下简称“位置确定装置102”),和用于如果所述当前像素点位于待渲染图形的边缘,则采用目标插值法来对所述当前像素点进行插值处理的装置(以下简称“插值处理装置103”)。
参照图2,像素获取装置101获取待渲染图形中当前像素点周围预定数量的目标像素点。
其中,所述待渲染图形包含于渲染画面,所述渲染画面包括多个待进行插值处理的像素点。
其中,所述当前像素点为将要进行插值处理的像素点。
具体地,像素获取装置101获取渲染画面中当前像素点的坐标信息,并基于该坐标信息确定渲染画面对应的素材图片的像素点坐标。接着,在素材图片中,像素获取装置101获取当前像素点对应位置附近的预定数量的目标像素点。
其中,所述预定数量大于或等于四。
其中,像素获取装置101可基于以下任一种方式来选择所述预定数量的目标像素点:
1)将所述当前像素点作为中心像素点,基于中心像素点的坐标信息,随机地选择与中心像素点相邻的预定数量的像素点作为目标像素点;
2)将所述当前像素点作为中心像素点,基于中心像素点的坐标信息,分别在特定的方向上选择与中心像素点邻近的预定数量的目标像素点。
例如,将当前像素点在其上、下、左和右四个方向上的相邻的4个像素点作为目标像素点。
又例如,将当前像素点在其上、下、左、右、左上、左下、右上和右下八个方向上相邻的8个像素点作为目标像素点。
位置确定装置102基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于所述待渲染图像的边缘。
其中,所述有效像素点为参与感光成像并对颜色有贡献的像素点。
具体地,假设目标像素点的数量为N(N大于或等于4),如果其中有效像素点的数量为1至N-1,则确定所述当前像素点是否位于所述待渲染图像的边缘。
如果所述当前像素点位于所述渲染图形的边缘,则插值处理装置103采用目标插值法来对所述当前像素点进行插值处理。
其中,所述插值处理用于将CCD感光元件所形成的实际像素数进行一定程度的模糊处理后,在空隙间进行填充,从而增加图像的像素值。
其中,所述目标插值法不会在插值处理后产生黑边或锯齿。
可选地,所述目标插值法包括重心坐标插值法、距离归一化插值法等不会在插值处理后产生黑边或锯齿的插值法。需要说明的是,本领域技术人员应熟悉基于诸如重心坐标插值法或距离归一化插值法等插值方法来进行插值处理的过程,此处不再赘述。
可选地,如果所述当前像素点位于所述渲染图形的边缘并且目标像素点中有效像素点的数量为一个,所述目标插值法采用最近邻插值法。由于仅有一个有效像素点用于进行插值处理,并且出现周围仅有一个有效像素点的情况的概率较小,使用最近邻插值法不会产生锯齿效果,并且可获得较快的计算速度。
根据一个实施例,所述插值处理装置103包括颜色计算装置和透明度计算装置。
颜色计算装置基于目标插值法来计算当前像素点的颜色值。
透明度计算装置基于有效像素点占全部目标像素点的百分比,得到当前像素点的透明度。
根据一个实施例,所述装置针对不同的有效像素点的个数采用相应的目标插值法来进行插值处理,所述插值处理装置103包括插值法确定装置和子插值处理装置。
插值法确定装置基于预存储的有效像素点个数和目标插值法的对应关系,确定对应于当前目标像素点中有效像素点的个数的目标插值法。
具体地,在数据库中建立和存储有效像素点个数和目标插值法的对应关系。如果所述当前像素点位于待渲染图形的边缘,插值法确定装置基于该预存储的有效像素点个数和目标插值法的对应关系,确定对应于当前目标像素点中有效像素点的个数的目标插值法。
插值处理装置采用所确定的目标插值法来对所述当前像素点进行插值处理。
例如,假设像素获取装置101获取当前像素点上下左右方向上的4个相邻像素点作为目标像素点。并且,在数据库中存储有效像素点个数和目标插值法的对应关系,该对应关系包括:3个有效像素点对应的目标插值法:重心坐标插值法;2个有效像素点对应的目标插值法:距离归一化插值法;1个有效像素点对应的目标插值法:最近邻插值法。如果当前目标像素点中有效像素点为2个,插值法确定装置基于该对应关系确定相应的插值法为归一化插值法,则子插值处理装置采用距离归一化插值法来对当前像素点进行插值处理。
根据一个实施例,所述装置还包括第二位置确定装置。
如果所述像素点不在所述渲染图形的边缘,第二位置确定装置进一步基于有效像素点的数量判断所述当前像素点的位置信息。
具体地,如果所述目标像素点均为有效像素点,则第二位置确定装置确定所述当前像素点位于渲染图形的内部,如果所述目标像素点中没有效像素点,则第二位置确定装置确定所述当前像素点位于渲染图形的外部。
可选地,根据本实施例的装置还包括内部插值装置。
如果所述当前像素点位于渲染图形的内部,则内部插值装置采用第一插值法来进行插值处理并计算当前像素点的颜色值和透明度。
可选地,所述第一插值法为双线性插值法。
可选地,根据本实施例的装置还包括外部插值装置。
如果所述当前像素点位于渲染图形的外部,则外部插值装置确定当前像素点的颜色值和透明度均为零。
类似地,对于渲染画面中所有待进行插值处理的像素点,所述方法通过执行上述像素获取装置101和位置确定装置102来确定该像素点是否位于所述待渲染图像的边缘,接着基于该像素点所在的位置执行插值处理装置103的操作、或第二位置确定装置和内部插值装置的操作或外部插值装置的操作,来进行相应的插值处理。
根据本申请实施例的装置,需要对图片进行渲染处理时通过像素点周围的有效像素点个数来判断该像素点在待渲染图形中的位置,如果像素点位于待渲染图像的边缘,则采用特定的插值法来进行插值处理,以避免在渲染图形的边缘产生黑边或锯齿,提升了渲染效果;基于像素点所在位置的不同而采用相应的插值方法来计算该像素点的颜色值和透明度,进一步提上了渲染效果。
根据本申请的一个优选实施方案,所述装置获取当前像素点周围的四个目标像素点,以避免面运算复杂度过高。
具体地,根据本优选实施方案的装置由像素获取装置101获取当前像素点周围的四个目标像素点。其中,所述四个目标像素点分别位于所述当前像素点的上、下、左和右四个方向。位置确定装置102基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘,如果所述四个目标像素点中有一至三个有效像素点,则位置确定装置102确定所述当前像素点位于所述渲染画面的边缘。
下面结合一个示例来对该优选实施方案的装置进行说明。
根据本示例的装置适用于OpenGL,并对OpenGL进行插值处理的方式进行了改进。像素获取装置101基于当前像素点的坐标(x0,y0),上下左右四个方向上邻近的四个像素点作为目标像素点,该四个目标像素点坐标分别表示为(x1,y1),(x2,y2),(x3,y3)和(x4,y4),并将当前的像素点作为中心像素点。如果该四个目标像素点均为有效像素点,则第二位置确定装置确定该中心像素点在待渲染图形的内部,则内部插值装置确定中心像素点的最终颜色与透明度值采用双线性插值来计算。
如果该4个目标像素点中有3个、2个或1个有效像素点,则位置确定装置102确定该中心像素点在待渲染图形的边缘,插值处理装置103分别采用重心坐标插值(对应于3个有效像素点)、距离归一化插值(对应于2个有效像素点)和最近邻插值(对应于1个有效像素点)来计算中心像素点的颜色值,并采用有效像素占全部像素的百分比来计算中心像素点的透明度。如果该4个目标像素点中没有有效像素点,则第二位置确定装置确定中心像素点位于待渲染图形的外部,外部插值装置确定中心像素点的颜色值和透明度全部取0。
若当前像素点在原始素材中位于线条或者图像边缘上,如果采用现有方案的插值方式在最终插值时如果采用线性插值则会产生黑边,而如果用最近邻插值则会产生锯齿。
与之不同,基于本示例的装置通过当前像素点周围的4个像素点中有效像素点个数来判断当前像素点在待渲染图形中的位置,并基于不同的位置采用不同的插值方法来计算颜色值和透明度,从而避免在渲染图形的边缘产生黑边或锯齿。
基于同一发明构思,本申请实施例中还提供了一种电子设备,所述电子设备对应的方法可以是前述实施例中的用于进行插值处理的方法,并且其解决问题的原理与该方法相似。本申请实施例提供的所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述本申请的多个实施例的方法和/或技术方案。
所述电子设备可以是用户设备、或者用户设备与网络设备通过网络相集成所构成的设备,或者也可以是运行于上述设备的应用程序,所述用户设备包括但不限于计算机、手机、平板电脑、智能手表、手环等各类终端设备,所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现,可以用于实现设置闹钟时的部分处理功能。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图3示出了适用于实现本申请实施例中的方法和/或技术方案的一种设备的结构,该设备1200包括中央处理单元(CPU,Central Processing Unit)1201,其可以根据存储在只读存储器(ROM,Read Only Memory)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM,Random Access Memory)1203中的程序而执行各种适当的动作和处理。在RAM1203中,还存储有系统操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O,Input/Output)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标、触摸屏、麦克风、红外传感器等的输入部分1206;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,LiquidCrystal Display)、LED显示器、OLED显示器等以及扬声器等的输出部分1207;包括硬盘、光盘、磁盘、半导体存储器等一个或多个计算机可读介质的存储部分1208;以及包括诸如LAN(局域网,Local Area Network)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。
特别地,本申请实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的方法中限定的上述功能。
本申请另一实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现前述本申请的任意一个或多个实施例的方法和/或技术方案。
具体来说,本实施例可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图或框图示出了按照本申请各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或页面组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一个计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种用于进行插值处理的方法,其中,所述方法包括:
获取待渲染图形中当前像素点周围预定数量的目标像素点;
基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘;
如果所述当前像素点位于待渲染图形的边缘,则采用目标插值法来对所述当前像素点进行插值处理,所述目标插值法不会在插值处理后产生黑边或锯齿。
2.根据权利要求1所述的方法,其中,所述基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘包括:
目标像素点的数量为N,如果其中有效像素点的数量为1至N-1,则确定所述当前像素点是否位于所述待渲染图像的边缘。
3.根据权利要求1或2所述的方法,其中,所述采用目标插值来对当前像素点进行插值处理包括:
基于所述目标插值法来计算所述当前像素点的颜色值;
基于有效像素点占全部目标像素点的百分比,得到所述当前像素点的透明度。
4.根据权利要求1或2所述的方法,其中,所述采用目标插值法来对所述当前像素点进行插值处理包括:
基于预存储的有效像素点个数和目标插值法的对应关系,确定对应于当前目标像素点中有效像素点的个数的目标插值法;
采用所确定的目标插值法来对所述当前像素点进行插值处理。
5.根据权利要求1或2所述的方法,其中,所述方法还包括;
如果所述像素点不在所述渲染图形的边缘,进一步基于有效像素点的数量判断所述当前像素点的位置信息;如果所述目标像素点均为有效像素点,则确定所述当前像素点位于渲染图形的内部,如果所述目标像素点中没有效像素点,则确定所述当前像素点位于渲染图形的外部。
6.根据权利要求5所述的方法,其中,所述方法还包括:
如果所述当前像素点位于渲染图形的内部,则采用第一插值法来来进行插值处理并计算当前像素点的颜色值和透明度。
如果所述当前像素点位于渲染图形的外部,则确定当前像素点的颜色值和透明度均为零。
7.根据权利要求1或2所述的方法,其中,所述获取待渲染图形中当前像素点周围预定数量的目标像素点包括:
获取当前像素点周围的四个目标像素点,所述四个目标像素点分别位于所述当前像素点的上、下、左和右四个方向;
其中,所述基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于所述渲染画面的边缘包括:
如果所述四个目标像素点中有一至三个有效像素点,则确定所述当前像素点位于所述渲染画面的边缘。
8.一种用于进行插值处理的装置,其中,所述装置包括:
用于获取待渲染图形中当前像素点周围预定数量的目标像素点的装置;
用于基于所述目标像素点中有效像素点的数量,确定所述当前像素点是否位于待渲染图形的边缘的装置;
用于如果所述当前像素点位于待渲染图形的边缘,则采用目标插值法来对所述当前像素点进行插值处理的装置,所述目标插值法不会在插值处理后产生黑边或锯齿。
9.一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311203991.9A CN117333361A (zh) | 2023-09-18 | 2023-09-18 | 用于进行插值处理的方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311203991.9A CN117333361A (zh) | 2023-09-18 | 2023-09-18 | 用于进行插值处理的方法、装置及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117333361A true CN117333361A (zh) | 2024-01-02 |
Family
ID=89289385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311203991.9A Pending CN117333361A (zh) | 2023-09-18 | 2023-09-18 | 用于进行插值处理的方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117333361A (zh) |
-
2023
- 2023-09-18 CN CN202311203991.9A patent/CN117333361A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN107154063B (zh) | 图像展示区域的形状设置方法及装置 | |
KR102475212B1 (ko) | 타일식 아키텍처들에서의 포비티드 렌더링 | |
US10164459B2 (en) | Selective rasterization | |
JP5149288B2 (ja) | 非等長的(anisometric)テクスチャ(texture)の合成(synthesis) | |
EP2902973B1 (en) | Method and device for processing a geometry image of a 3d scene | |
JP2015515059A (ja) | シーンにおける不透明度レベルを推定する方法とそれに対応する装置 | |
CN111724313B (zh) | 一种阴影贴图生成方法与装置 | |
CN113538502A (zh) | 图片裁剪方法、装置、电子设备及存储介质 | |
CN116310036A (zh) | 场景渲染方法、装置、设备、计算机可读存储介质及产品 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN111862342B (zh) | 增强现实的纹理处理方法、装置、电子设备及存储介质 | |
CN109739403B (zh) | 用于处理信息的方法和装置 | |
CN115082356B (zh) | 基于shader的视频流图像校正方法、装置和设备 | |
WO2021213664A1 (en) | Filtering for rendering | |
JP2016511962A (ja) | 内挿方法および対応する装置 | |
CN111199569A (zh) | 数据处理的方法、装置、电子设备及计算机可读介质 | |
CN112465692A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN117333361A (zh) | 用于进行插值处理的方法、装置及计算机可读介质 | |
CN116228956A (zh) | 一种阴影渲染方法、装置、设备及介质 | |
CN114821011A (zh) | 一种动态图片生成方法和装置 | |
WO2022126145A1 (en) | Hybrid shadow rendering | |
CN109816595B (zh) | 图像处理方法和装置 | |
CN114359081A (zh) | 液体材质溶解方法、装置、电子设备及存储介质 | |
US12131418B2 (en) | Graphics processing unit instancing control |
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 |