CN106530235A - 图像旋转处理方法及装置 - Google Patents
图像旋转处理方法及装置 Download PDFInfo
- Publication number
- CN106530235A CN106530235A CN201610932324.8A CN201610932324A CN106530235A CN 106530235 A CN106530235 A CN 106530235A CN 201610932324 A CN201610932324 A CN 201610932324A CN 106530235 A CN106530235 A CN 106530235A
- Authority
- CN
- China
- Prior art keywords
- subregion
- image
- coordinate
- transitional region
- pixel
- 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 claims abstract description 25
- 230000009466 transformation Effects 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000009825 accumulation Methods 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000004040 coloring Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 abstract description 19
- 230000007704 transition Effects 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000000205 computational method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification 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/60—Rotation of whole images or parts thereof
- G06T3/602—Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
-
- 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/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明涉及图像旋转处理方法及装置,为解决现有技术的图像旋转处理效率低下的问题,本发明的方法包括以下步骤:S1:设定图像显示区域并将所述显示区域划分为若干个子区域;S2:对每个所述子区域进行旋转变换,根据旋转变换后所述子区域的顶点位置计算得到包含所述子区域的过渡区域;S3:获取所述过渡区域对应的图像数据;S4:通过计算得到所述过渡区域内子区域对应的图像数据;S5:拼合所述若干子区域对应的图像数据得到旋转后的目标图像。
Description
技术领域
本发明涉及图像处理技术领域,更具体地说,涉及一种图像旋转处理方法及装置。
背景技术
视频图像的任意角度旋转一直是视频处理中的一个难题,特别是对于大分辨率的视频图像,要做到完全实时的任意角度旋转更是难上加难。现有的大部分视频信号处理芯片只能做到对视频实现几个特定角度的旋转,如90°、180°、270°,而无法做到任意角度旋转。究其原因,是因为图像旋转需要遍历原始图像中的每个像素点再进行位置移动,这对于通常的CPU和作为其数据缓存的DDR来说是特别耗时的。更不用说在任意旋转角度下,这种遍历和位置移动的效率是极低的。当然也有通过选择SRAM来进行数据缓存而达到提高旋转效率的方式,但SRAM过于昂贵,而对于大分辨率图像旋转所需要的大容量SRAM更不容易找到,而其成本对于产品化也不可接受。所以提供一个高效率的图像旋转处理方法是十分必要的。
发明内容
本发明要解决的技术问题在于,针对现有图像旋转处理技术效率低下的问题,提供一种图像旋转处理方法及装置。
本发明解决其技术问题所采用的技术方案是:构造一种图像旋转处理方法,包括以下步骤:
S1:设定图像显示区域并将所述显示区域划分为若干个子区域;
S2:对每个所述子区域进行旋转变换,根据旋转变换后所述子区域的顶点位置计算得到包含所述子区域的过渡区域;
S3:获取所述过渡区域对应的图像数据;
S4:通过计算得到所述过渡区域内子区域对应的图像数据;
S5:拼合所述若干子区域对应的图像数据得到旋转后的目标图像。
优选地,在所述步骤S1前还包括步骤S0:获取原始图像,所述原始图像的像素大小为A*B。
优选地,所述步骤S1包括:
S11:根据输出图像像素大小设定所述显示区域,所述显示区域的像素大小为M*N,M≤A,N≤B;
S12:将所述显示区域划分为C个子区域,所述子区域的像素大小为O*P,
优选地,所述步骤S2包括以下步骤:
S21:设定旋转变换矩阵H:
S22:获取每个子区域的顶点坐标;
S23:根据所述旋转变换矩阵H以及所述子区域的顶点坐标计算得到所述过渡区域的坐标范围以及像素大小S*T,所述子区域的四个顶点分别位于所述过渡区域的四条边界线上;
S24:轮询计算所述子区域坐标范围内每个像素点的坐标。
优选地,所述过渡区域与所述原始图像的对应边相互平行。
优选地,所述步骤S24包括:
S241:获取所述子区域内的最小行列坐标值(i,j);
S242:执行行列累加计算:
S242a:对所述最小行列坐标值(i,j)做行累加计算;
S242b:当累加至所述子区域的最大行坐标值(i+n,j)时,回到该列j的最小行列坐标值(i,j),进行列累加计算,将列坐标值加一,对坐标值(i,j+1)做行累加计算,不断循环。
S243:判断是否达到所述子区域的最大行坐标值和最大列坐标值,若是,则完成轮询计算,否则继续执行列累加计算。
优选地,所述步骤S3包括:
S31:根据所述过渡区域的坐标范围,读取相应的原始图像数据块;
S32:根据轮询计算得到的像素点的坐标值,读取相应像素点的颜色信息。
优选地,所述步骤S3还包括:当所述过渡区域坐标范围超出了所述原始图像边界时,将相应像素点的颜色填充为指定颜色。
优选地,所述步骤S4包括:根据所述子区域内每个像素点与所述过渡区域像素点的坐标关系,采用双线性内插值算法得到所述子区域内每个像素点的颜色信息。
本发明还提供一种图像旋转处理装置,包括:
主控单元:用于设定图像显示区域并将所述显示区域划分为若干个子区域;
坐标计算单元:用于对每个所述子区域进行旋转变换,根据旋转变换后的所述子区域的顶点位置计算得到包含所述子区域的过渡区域;
内存读取单元:用于获取所述过渡区域对应的图像数据;
像素处理单元:用于通过计算得到所述过渡区域内子区域对应的图像数据;
存储单元:用于拼合所述若干子区域对应的图像数据得到旋转后的目标图像。
本发明的图像旋转处理方法及装置,在图像处理过程中,将显示区域划分为多个子区域,对每个子区域做旋转变换,并根据子区域的顶点划分过渡区域。获取过渡区域范围内的图像数据,通过计算得到过渡区域内子区域的图像后,拼合所有子区域的图像数据得到旋转后的图像,解决了传统图像旋转处理方法中图像像素读取效率低下、遍历计算所有像素点时效率过低等问题。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明图像旋转处理方法的流程图;
图2是原始图像、显示区域及子区域划分的示意图;
图3是图2所示显示区域顺时针旋转45°的示意图;
图4是图3所示一个子区域对应过渡区域示意图;
图5是图4所示过渡区域与子区域坐标对应关系示意图;
图6是图4所示过渡区域对应的图像数据读取方向示意图;
图7是根据图3所示旋转后显示区域计算得到的图像示意图;
图8是本发明图像旋转处理装置一实施例的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和具体实施例,对本发明进行进一步的详细说明。
如图1所示,本发明的图像旋转处理方法包括以下步骤:
S1:设定图像显示区域2并将显示区域2划分为若干个子区域21;
S2:对每个子区域21进行旋转变换,根据旋转变换后子区域21的顶点位置计算得到包含子区域21的过渡区域3;
S3:获取过渡区域3对应的图像数据;
S4:通过计算得到过渡区域3内子区域21对应的图像数据;
S5:拼合若干子区域21对应的图像数据得到旋转后的目标图像。
为提高图像旋转处理的高效性,本发明的图像旋转处理方法设定图像显示区域2,并只对显示区域2大小的图像进行处理,减少不必要的计算过程。
进一步地,在步骤S1之前还包括步骤S0:获取原始图像1,原始图像1的像素大小为A*B。
进一步地,步骤S1还包括:
S11:根据输出图像像素大小设定显示区域2,显示区域2的像素大小为M*N,M≤A,N≤B;
S12:将显示区域2划分为C个子区域21,子区域21的像素大小为O*P,
如图2所示,本实施例中的原始图像1上有“原始图像”的字样。根据输出图像像素大小,设定了与输出图像像素大小相同的显示区域2,以便通过显示区域2采集到的图像数据可直接输出显示。该实施例中的显示区域2小于原始图像1大小。当然,显示区域2的像素大小还可以大于或等于原始图像1。当不进行旋转处理时,可看到显示区域2内的图像包括字样“始”、“图”和部分“像”字。可以理解的,显示区域2与原始图像1的相对位置可根据需要进行其它设置,例如使显示区域2的左上角与原始图像1的左上角重叠。
具体的,可通过下述方法设定显示区域2。若原始图像1的像素大小为1920*1080,以原始图像1的左上顶点为坐标原点建立坐标系。根据实际输出需要设定显示区域2四个顶点的坐标值,可得到显示区域2在原始图像1上的相应位置。可以理解的,显示区域2的范围可根据需要进行任意设置,显示区域2与原始图像1的相应边也可不平行,即显示区域2相对于原始图像1而言是倾斜的。
在图2所示的情况下,若用户需要得到两个非倾斜的字样:“始”和“图”,则需要对显示区域2进行旋转。为提高运算效率,本方法将显示区域2划分为多个子区域21,再依次对多个子区域21做旋转变换。为便于计算,本实施例划分的子区域21为正方形。在实际运算中,若显示区域2的像素大小为1920*1080,可将子区域21的像素大小设为120*120,那么一个显示区域2就可以划分成16*9个子区域21。
进一步地,步骤S2包括以下步骤:
S21:设定旋转变换矩阵H:
S22:获取每个子区域21的顶点坐标;
S23:根据旋转变换矩阵H以及子区域21的顶点坐标计算得到过渡区域3的坐标范围以及像素大小S*T,子区域21的四个顶点分别位于过渡区域3的四条边界线上;
S24:轮询计算子区域21坐标范围内每个像素点的坐标。
用户通过图像判断将显示区域2顺时针旋转45°可得到正向的文字。根据旋转角度可得到相应的旋转矩阵H:
通过设定显示区域2时建立的坐标系可得到每个子区域21的原顶点坐标(x,y),根据旋转矩阵可计算得到旋转后的顶点坐标(x′,y′):
图3示出了将显示区域2的所有子区域21按顺时针旋转45°后,在原始图像1上的相对位置。可以理解的,每计算得到一个子区域21后可进行后续的运算,不必等所有子区域21坐标计算完成后再计算每个子区域21对应的过渡区域3。为提高图像处理的效率,本发明过渡区域3与原始图像1的对应边相互平行。
图4示出了其中一个子区域21对应的过渡区域3。过渡区域3的坐标范围计算方法如下,设旋转变换后子区域21的四个顶点坐标分别为(x′1,y′1)、(x′2,y′2)、(x′3,y′3)、(x′4,y′4)。通过四个顶点均位于过渡区域3的四条边界线上,且四条边界线分别与原始图像1的相应边平行,可以得到过渡区域3的四个顶点坐标分别为(x′1,y′2)、(x′3,y′2)、(x′1,y′4)、(x′3,y′4)。如图5所示,根据过渡区域3四个顶点的坐标可确定整个过渡区域3的范围,即横坐标范围为(x′1~x′3),纵坐标范围为(y′2~y′4)。
确定过渡区域3的坐标范围后可计算子区域内所有像素点的坐标。轮询计算子区域21坐标范围内每个像素点坐标的方法包括以下步骤:
S241:获取子区域2内的最小行列坐标值(i,j);
S242:执行行列累加计算:
S242a:对最小行列坐标值(i,j)做行累加计算;
S242b:当累加至子区域21的最大行坐标值(i+n,j)时,回到该列j的最小行列坐标值(i,j),进行列累加计算,将列坐标值加一,对坐标值(i,j+1)做行累加计算,不断循环。
S243:判断是否达到子区域21的最大行坐标值和最大列坐标值,若是,则完成轮询计算,否则继续执行列累加计算。
得到子区域21所有点的坐标值后,可读取相应的图像数据。具体的,步骤S3包括:
S31:根据过渡区域3的坐标范围,读取相应的原始图像1数据块;
S32:根据轮询计算得到的像素点的坐标值,读取相应像素点的颜色信息。
如图6所示,由于过渡区域3与原始图像1对应边平行,且其像素点与原始图像1的像素点一一对应,像素点的读取方向为从过渡区域3的小坐标到大坐标逐行读取。
在一些实施例中,根据子区域21计算得到的过渡区域3的范围会超出原始图像1的边界。由于超出的部分无对应原始图像1的像素信息,此时,可将相应的像素点的颜色填充为指定颜色。用户可根据处理需要任意设置该指定颜色。
得到过渡区域3的图像数据后,可计算其中子区域21的图像数据。进一步地,步骤S4包括:根据子区域21内每个像素点与过渡区域3像素点的坐标关系,采用双线性内插值算法得到子区域21内每个像素点的颜色信息。
子区域21与过渡区域3的对应边不平行,其像素点的读取方向为从子区域21的小坐标到大坐标逐行读取。采用双线性内插值算法确定每个子区域21每个像素点的颜色信息,即利用过渡区域3中与子区域21像素点映射位置最邻近的四个像素点的颜色计算子区域21中像素点的颜色。双线性内插值算法为图像处理中的常用算法,本实施例中不再详述其计算过程。可以理解的,根据对输出图像的质量要求不同,可采用其他算法,例如:最邻近插值法和三次卷积插值算法等等。
将所有子区域21的图像数据进行拼合可得到旋转后的目标图像,图7示出了本实施例中显示区域2经过旋转变换后得到的目标图像。
本发明的图像旋转处理方法,在图像处理过程中,将显示区域划分为多个子区域,对每个子区域做旋转变换,并根据子区域的顶点划分过渡区域。获取过渡区域范围内的图像数据,通过计算得到过渡区域内子区域的图像后,拼合所有子区域的图像数据得到旋转后的图像,解决了传统图像旋转处理方法中图像像素读取效率低下、遍历计算所有像素点时效率过低等问题。
本发明还提供一种图像旋转处理装置4,包括:
主控单元44:用于设定图像显示区域2并将显示区域2划分为若干个子区域21;
坐标计算单元42:用于对每个子区域21进行旋转变换,根据旋转变换后的子区域21的顶点位置计算得到包含子区域21的过渡区域3;
内存读取单元45:用于获取过渡区域3对应的图像数据;
像素处理单元47:用于通过计算得到过渡区域3内子区域21对应的图像数据;
存储单元40:用于拼合若干子区域21对应的图像数据得到旋转后的目标图像。
为提高图像旋转处理的高效性,本发明的图像旋转处理方法设定图像显示区域2,并只对显示区域2大小的图像进行处理,减少不必要的计算过程。
如图8所示,为提升整个装置图像处理效率,进一步地,该装置还包括:
矩阵获取单元41:与坐标计算单元42相连,用于获取旋转变换矩阵,并输出变换矩阵供坐标计算单元42进行计算。
坐标缓存单元43:与坐标计算单元42相连,用于缓存坐标计算单元42计算得到的坐标值。
图像块缓存单元46,与内存读取单元45和主控单元44连接,用于缓存内存读取单元45获取的图像数据。
像素缓存单元48,与像素处理单元47连接,用于缓存像素处理单元47得到的子区域21图像数据。
内存写入单元49,与像素缓存单元48与存储单元40连接,用于监测像素缓存单元48中存储的数据大小,根据监测结果向存储单元40发送像素缓存单元48中的图像数据。
该装置的工作过程如下:
存储单元40除了用于存储旋转后的图像数据外,其内部预先存有原始图像1,原始图像1的像素大小为A*B。
主控单元44根据输出图像像素大小设定显示区域2,显示区域2的像素大小为M*N,M≤A,N≤B;并将显示区域2划分为C个子区域21,子区域21的像素大小为O*P,
如图2所示,本实施例中的原始图像1上有“原始图像”的字样。根据输出图像像素大小,设定了与输出图像像素大小相同的显示区域2,以便通过显示区域2采集到的图像数据可直接输出显示。该实施例中的显示区域2小于原始图像1大小。当然,显示区域2的像素大小还可以大于或等于原始图像1。当不进行旋转处理时,可看到显示区域2内的图像包括字样“始”、“图”和部分“像”字。可以理解的,显示区域2与原始图像1的相对位置可根据需要进行设置,例如:显示区域2的左上角与原始图像1的左上角平齐。
具体的,可通过下述方法设定显示区域2。若原始图像1的像素大小为1920*1080,以原始图像1的左上顶点为坐标原点建立坐标系。根据实际输出需要设定显示区域2四个顶点的坐标值,可得到显示区域2在原始图像1上的位置。可以理解的,显示区域2的范围可根据需要进行任意设置,显示区域2与原始图像1的相应边可不平行,即显示区域2相对于原始图像1而言是倾斜的。
在图2所示的情况下,若用户需要得到两个非倾斜的字样:“始”和“图”,则需要对显示区域2进行旋转。为提高运算效率,主控单元44将显示区域2划分为多个子区域21,再依次对多个子区域21做旋转变换。为便于计算,本发明划分的子区域21为正方形。在实际运算中,若显示区域2的像素大小为1920*1080,可将子区域21的像素大小设为120*120,则一个显示区域2就可以划分成16*9个子区域21。
进一步地,矩阵获取单元41根据旋转需求获取旋转变换矩阵H:
主控单元44按先列后行的顺序依次将每个子区域21的顶点坐标发送给坐标计算单元42,坐标计算单元42根据旋转变换矩阵H以及子区域21的顶点坐标计算得到过渡区域3的坐标范围以及像素大小S*T,子区域21的四个顶点分别位于过渡区域3的四条边界线上。计算得到过渡区域3的坐标范围后再轮询计算子区域21坐标范围内每个像素点的坐标。可以理解的,主控单元44发送子区域21坐标的顺序可根据需要进行其他设置。
在本实施例中,若需得到正向的文字,可将所有子区域21顺时针旋转45°。相应旋转矩阵H为:
主控单元44通过设定显示区域2时建立的坐标系可得到每个子区域21的原顶点坐标(x,y),坐标计算单元42根据旋转矩阵可计算得到旋转后的顶点坐标(x′,y′):
图3示出了将显示区域2的所有子区域21按顺时针旋转45°后,在原始图像1上的相对位置。可以理解的,每计算得到一个子区域21后可进行后续的运算,不必等所有子区域21坐标计算完成后再计算每个子区域21对应的过渡区域3。为提高图像处理的效率,本发明过渡区域3与原始图像1的对应边相互平行。
图4示出了其中一个子区域21对应的过渡区域3。过渡区域3的坐标范围计算方法如下:设旋转变换后子区域21的四个顶点坐标分别为(x′1,y′1)、(x′2,y′2)、(x′3,y′3)、(x′4,y′4),由于四个顶点均位于过渡区域3的四条边界线上,且四条边界线分别与原始图像1的相应边平行,可以得到过渡区域3的四个顶点坐标分别为(x′1,y′2)、(x′3,y′2)、(x′1,y′4)、(x′3,y′4)。如图5所示,根据过渡区域3四个顶点的坐标可确定整个过渡区域3的范围,即横坐标范围为(x′1~x′3),纵坐标范围为(y′2,y′4)。
确定过渡区域3的坐标范围后可计算子区域内所有像素点的坐标。轮询计算子区域21坐标范围内每个像素点坐标的方法为:
1:获取子区域2内的最小行列坐标值(i,j);
2:执行行列累加计算:
2a:对最小行列坐标值(i,j)做行累加计算;
2b:当累加至子区域21的最大行坐标值(i+n,j)时,回到该列j的最小行列坐标值(i,j),进行列累加计算,将列坐标值加一,对坐标值(i,j+1)做行累加计算,不断循环。
3:判断是否达到子区域21的最大行坐标值和最大列坐标值,若是,则完成轮询计算,否则继续执行列累加计算。
坐标计算单元42得到一个子区域21内所有点的坐标值后,输出至坐标缓存单元43。坐标计算单元42根据主控单元44发来的数据进行下一个过渡区域3的坐标值计算。
坐标计算单元42将过渡区域3坐标范围反馈至主控单元44,主控单元44根据该坐标范围发送控制信号至内存读取单元45。内存读取单元45首先将主控单元44发送的过渡区域3坐标范围转换成存储单元40的存储地址,当接收到控制单元发送的开始信号时,发送读地址请求,然后在地址请求被接受后,开始用突发传输模式逐行读取过渡区域3坐标范围对应的原始图像块,最后判断该范围的原始图像块是否读取是否完毕,即是否到达该范围的最大行列坐标。如图6所示,由于过渡区域3与原始图像1对应边平行,且其像素点与原始图像1的像素点一一对应,像素点的读取方向为从过渡区域3的小坐标到大坐标逐行读取。
在一些实施例中,根据子区域21计算得到的过渡区域3的范围会超出原始图像1的边界。由于超出的部分无对应原始图像1的像素信息,此时,可将相应的像素点的颜色填充为指定颜色。用户可根据处理需要任意设置该指定颜色。
内存读取单元45将原始图像块发送至图像块缓存单元46缓存,并反馈空闲状态信息至主控单元44。主控单元44根据反馈信息再次发送控制信息至内存读取单元45。
图像块缓存单元46内包括两个数据缓存区,数据缓存区的大小大于每个原始图像块的数据大小。两个数据缓存区,轮流缓存内存读取单元45发送的原始图像块,并反馈缓存状态至主控单元44。主控单元44从坐标缓存单元43中读取相应的坐标信息并发送给图像块缓存单元46。图像块缓存单元46根据坐标信息发送相应的原始图像像素点的颜色信息给像素处理单元47。
像素处理单元47将根据子区域21内每个像素点与过渡区域3像素点的坐标关系,采用双线性内插值算法得到子区域21内每个像素点的颜色信息。子区域21与过渡区域3的对应边不平行,其像素点的读取方向为从子区域21的小坐标到大坐标逐行读取。采用双线性内插值算法确定每个子区域21内每个像素点的颜色信息,即利用过渡区域3中与子区域21像素点映射位置最邻近的四个像素点的颜色计算子区域21中像素点的颜色。双线性内插值算法为图像处理中的常用算法,本实施例中不再详述其计算过程。可以理解的,根据对输出图像的质量要求不同,可采用其他算法,例如:最邻近插值法和三次卷积插值算法等等。
像素处理单元47计算得到的像素点缓存至像素缓存单元48,内存写入单元49监测像素缓存单元48中的数据量。当监测到数据量大于或等于一个子区域21像素数据量时,发送写地址请求至存储单元40,当写地址请求被接收之后,开始用突发传输模式逐行将子区域21图像数据写入存储单元40。一个子区域21图像数据写入完毕后,若监测到像素缓存单元48中的数据量已大于或等于一个子区域21像素数据量时,继续将下一个子区域21的图像数据写入存储单元40,不断循环,直至整个显示区域2的图像数据写入结束。存储单元40按写入顺序存储各子区域21的图像数据即完成了各子区域21的图像数据的拼合过程。图7示出了本实施例中显示区域2经过旋转变换后得到的输出图像。
本发明的图像旋转处理装置,在图像处理过程中,将显示区域划分为多个子区域,对每个子区域做旋转变换,并根据子区域的顶点划分过渡区域。获取过渡区域范围内的图像数据,通过计算得到过渡区域内子区域的图像后,拼合所有子区域的图像数据得到旋转后的图像,解决了传统图像旋转处理方法中图像像素读取效率低下、遍历计算所有像素点时效率过低等问题。
可以理解的,以上实施例仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,可以对上述技术特点进行自由组合,还可以做出若干变形和改进,这些都属于本发明的保护范围;因此,凡跟本发明权利要求范围所做的等同变换与修饰,均应属于本发明权利要求的涵盖范围。
Claims (10)
1.一种图像旋转处理方法,其特征在于,包括以下步骤:
S1:设定图像显示区域并将所述显示区域划分为若干个子区域;
S2:对每个所述子区域进行旋转变换,根据旋转变换后所述子区域的顶点位置计算得到包含所述子区域的过渡区域;
S3:获取所述过渡区域对应的图像数据;
S4:通过计算得到所述过渡区域内子区域对应的图像数据;
S5:拼合所述若干子区域对应的图像数据得到旋转后的目标图像。
2.根据权利要求1所述的图像旋转处理方法,其特征在于,在所述步骤S1前还包括步骤S0:获取原始图像,所述原始图像的像素大小为A*B。
3.根据权利要求2所述的图像旋转处理方法,其特征在于,所述步骤S1包括:
S11:根据输出图像像素大小设定所述显示区域,所述显示区域的像素大小为M*N,M≤A,N≤B;
S12:将所述显示区域划分为C个子区域,所述子区域的像素大小为O*P,
4.根据权利要求3所述的图像旋转处理方法,其特征在于,所述步骤S2包括以下步骤:
S21:设定旋转变换矩阵H:
S22:获取每个子区域的顶点坐标;
S23:根据所述旋转变换矩阵H以及所述子区域的顶点坐标计算得到所述过渡区域的坐标范围以及像素大小S*T,所述子区域的四个顶点分别位于所述过渡区域的四条边界线上;
S24:轮询计算所述子区域坐标范围内每个像素点的坐标。
5.根据权利要求4所述的图像旋转处理方法,其特征在于,所述过渡区域与所述原始图像的对应边相互平行。
6.根据权利要求4所述的图像旋转处理方法,其特征在于,所述步骤S24包括:
S241:获取所述子区域内的最小行列坐标值(i,j);
S242:执行行列累加计算:
S242a:对所述最小行列坐标值(i,j)做行累加计算;
S242b:当累加至所述子区域的最大行坐标值(i+n,j)时,回到该列j的最小行列坐标值(i,j),进行列累加计算,将列坐标值加一,对坐标值(i,j+1)做行累加计算,不断循环。
S243:判断是否达到所述子区域的最大行坐标值和最大列坐标值,若是,则完成轮询计算,否则继续执行列累加计算。
7.根据权利要求4所述的图像旋转处理方法,其特征在于,所述步骤S3包括:
S31:根据所述过渡区域的坐标范围,读取相应的原始图像数据块;
S32:根据轮询计算得到的像素点的坐标值,读取相应像素点的颜色信息。
8.根据权利要求7所述的图像旋转处理方法,其特征在于,所述步骤S3还包括:当所述过渡区域坐标范围超出了所述原始图像边界时,将相应像素点的颜色填充为指定颜色。
9.根据权利要求8所述的图像旋转处理方法,其特征在于,所述步骤S4包括:根据所述子区域内每个像素点与所述过渡区域像素点的坐标关系,采用双线性内插值算法得到所述子区域内每个像素点的颜色信息。
10.一种图像旋转处理装置,其特征在于,包括:
主控单元:用于设定图像显示区域并将所述显示区域划分为若干个子区域;
坐标计算单元:用于对每个所述子区域进行旋转变换,根据旋转变换后的所述子区域的顶点位置计算得到包含所述子区域的过渡区域;
内存读取单元:用于获取所述过渡区域对应的图像数据;
像素处理单元:用于通过计算得到所述过渡区域内子区域对应的图像数据;
存储单元:用于拼合所述若干子区域对应的图像数据得到旋转后的目标图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610932324.8A CN106530235B (zh) | 2016-10-24 | 2016-10-24 | 图像旋转处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610932324.8A CN106530235B (zh) | 2016-10-24 | 2016-10-24 | 图像旋转处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106530235A true CN106530235A (zh) | 2017-03-22 |
CN106530235B CN106530235B (zh) | 2019-06-28 |
Family
ID=58292797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610932324.8A Active CN106530235B (zh) | 2016-10-24 | 2016-10-24 | 图像旋转处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106530235B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492243A (zh) * | 2018-04-13 | 2018-09-04 | 福州新迪微电子有限公司 | 一种基于块处理的图像旋转装置、系统和方法 |
CN113284053A (zh) * | 2021-04-19 | 2021-08-20 | 广州匠芯创科技有限公司 | 2d图形任意角度旋转的实现方法及介质 |
CN115082324A (zh) * | 2022-07-27 | 2022-09-20 | 四川赛狄信息技术股份公司 | 一种视频图像局部旋转处理方法、系统、终端及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630403A (zh) * | 2009-07-31 | 2010-01-20 | 卓望数码技术(深圳)有限公司 | 一种图片旋转实现方法和图片旋转实现装置 |
CN103021013A (zh) * | 2012-11-28 | 2013-04-03 | 无锡羿飞科技有限公司 | 投影机球形显示及旋转输出图像的高效处理方法 |
CN104331861A (zh) * | 2014-11-14 | 2015-02-04 | 广东威创视讯科技股份有限公司 | 图像旋转方法和系统 |
CN105279732A (zh) * | 2015-10-16 | 2016-01-27 | 福建天晴数码有限公司 | 一种运用于平面图像快速形变的方法及系统 |
CN105678722A (zh) * | 2014-11-20 | 2016-06-15 | 深圳英飞拓科技股份有限公司 | 一种全景拼接图像弯曲矫正方法及装置 |
-
2016
- 2016-10-24 CN CN201610932324.8A patent/CN106530235B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630403A (zh) * | 2009-07-31 | 2010-01-20 | 卓望数码技术(深圳)有限公司 | 一种图片旋转实现方法和图片旋转实现装置 |
CN103021013A (zh) * | 2012-11-28 | 2013-04-03 | 无锡羿飞科技有限公司 | 投影机球形显示及旋转输出图像的高效处理方法 |
CN104331861A (zh) * | 2014-11-14 | 2015-02-04 | 广东威创视讯科技股份有限公司 | 图像旋转方法和系统 |
CN105678722A (zh) * | 2014-11-20 | 2016-06-15 | 深圳英飞拓科技股份有限公司 | 一种全景拼接图像弯曲矫正方法及装置 |
CN105279732A (zh) * | 2015-10-16 | 2016-01-27 | 福建天晴数码有限公司 | 一种运用于平面图像快速形变的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492243A (zh) * | 2018-04-13 | 2018-09-04 | 福州新迪微电子有限公司 | 一种基于块处理的图像旋转装置、系统和方法 |
CN113284053A (zh) * | 2021-04-19 | 2021-08-20 | 广州匠芯创科技有限公司 | 2d图形任意角度旋转的实现方法及介质 |
CN115082324A (zh) * | 2022-07-27 | 2022-09-20 | 四川赛狄信息技术股份公司 | 一种视频图像局部旋转处理方法、系统、终端及介质 |
CN115082324B (zh) * | 2022-07-27 | 2022-11-01 | 四川赛狄信息技术股份公司 | 一种视频图像局部旋转处理方法、系统、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106530235B (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106530235A (zh) | 图像旋转处理方法及装置 | |
EP2870585B1 (en) | A method and system for correcting a distorted image | |
JP2019505939A (ja) | コンピューティングシステムにおけるアンチエイリアシング動作の実行 | |
WO2003098335A2 (en) | Rotable colour flat panel display and sub-pixel rendering method | |
CN113012047B (zh) | 动态摄像头坐标映射建立方法、装置及可读存储介质 | |
CN105741233B (zh) | 一种视频图像球面拼接方法及系统 | |
CN103226807B (zh) | 用于点阵显示设备的图像旋转方法和装置 | |
CN103116878B (zh) | 校正图像桶形失真的方法、装置以及图像处理装置 | |
KR100221262B1 (ko) | 디지탈 반명암 시스템을 위해 요구되는 메모리 공간을 줄이기 위한 방법 및 장치 | |
CN107527327A (zh) | 一种基于gpu的鱼眼校正方法 | |
CN106530209A (zh) | 一种基于fpga的图像旋转方法及装置 | |
CN105550984A (zh) | 一种鱼眼图像校正和漫游显示的方法及装置 | |
CN109993801A (zh) | 一种用于二维相机与三维传感器的标定装置及标定方法 | |
CN108062774B (zh) | 车辆俯仰角确定方法、装置及其汽车 | |
US7215830B2 (en) | Method and device for transforming an object image | |
CN107741881B (zh) | 基于GPU的Zernike矩快速计算方法 | |
CN109685715B (zh) | 一种显示系统中高精度图像无级旋转处理方法 | |
CN109871939B (zh) | 一种图像处理方法及图像处理装置 | |
US8023359B2 (en) | System and method for converting scan data | |
CN100396088C (zh) | 帧处理系统和帧处理方法 | |
CN113870364B (zh) | 一种自适应的双目相机标定方法 | |
CN115601223A (zh) | 一种图像预处理装置、方法和芯片 | |
CN106991643B (zh) | 一种低资源消耗的实时核线方法和实时核线系统 | |
CN110659370A (zh) | 一种高效数据标注方法 | |
Zhang et al. | A real-time image stitching method based on memory space conversion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |