图像处理装置

文档序号:1409725 发布日期:2020-03-06 浏览:25次 >En<

阅读说明:本技术 图像处理装置 (Image processing apparatus ) 是由 O·海克 N·沙哈姆 Z·法恩伯格 E·韦尔纳 于 2017-10-16 设计创作,主要内容包括:在示例中,包括图像处理器的装置被配置成:对图像执行边缘检测以检测多个边缘;基于检测到的多个边缘自动地识别横穿图像的路径;基于确定的路径将图像分割为两个相邻的子图像;并生成第一和第二打印数据使打印设备打印两个相邻的子图像。(In an example, an apparatus comprising an image processor is configured to: performing edge detection on the image to detect a plurality of edges; automatically identifying a path traversing the image based on the detected plurality of edges; segmenting the image into two adjacent sub-images based on the determined path; and generating first and second print data to cause the printing device to print two adjacent sub-images.)

图像处理装置

背景技术

打印设备根据图像数据在媒介上打印图像。打印设备可通过打印形成完整图像的两个或多个子图像来打印超出打印设备的可打印尺寸的图像。例如,可通过为两个或多个子图像生成图像数据并打印每个子图像来打印墙纸、大型商业横幅和全景照片的打印件。

具体实施方式

在下面的描述中,为了便于解释,列出了某些示例的许多具体的细节。在说明书中对“示例”或类似语言的引用意味着,结合示例描述的特定特征、结构或特性至少包含在一个示例中,但不一定包含在其他示例中。

本文描述的某些示例提供了用于生成在打印设备的单一打印上不可打印的图像的打印图像的方法和系统。例如,壁纸、大型商业横幅和宽幅全景照片的打印件可能太大而无法在单张纸上打印。打印超大图像的一种选择是打印包含大幅图像的一部分的子图像且子图像可拼接在一起以生成大幅图像的打印件。

生成子图像的一种方便方法是对完整图像进行数字表示,并使用图像处理技术将该图像分割为重叠的子图像。例如,图像处理器可用于选择大幅图像的区域以获得可在打印设备上打印的多个子图像。不幸的是,在子图像之间创建重叠区域有很多副作用。根据用于打印子图像的打印设备的纸张处理精度,这些副作用可在大幅图像的最终打印输出中或多或少地可见。例如,如果子图像之间的重叠区域太大,则子图像之间的拼接区域可在打印输出中变得可见。或者,如果重叠区域太小,则拼接线仍可显示为子图像之间的窄条。小至±100μm的偏差可以使子图像之间的拼接对于人眼是可识别的。而且,使用的拼接的形状并没有改善这种情况。例如,即使在子图像之间的重叠区域中使用锯齿状的或波浪状的拼接而不是直线,在最终打印输出中,拼接仍然可以被人眼分辨。其原因之一是子图像之间的朴素(naive)拼接线(分割较大图像中的特征)导致打印输出上的打印的子图像之间的线是容易识别的。

在本文的某些示例中,描述了基于图像自身的特征的属性来拼接子图像的方法。该方法对打印设备的纸张处理不一致具有弹性(resilient)。此外,得到的大幅图像的输出打印在子图像之间的重叠区域中不包含容易识别的拼接线。利用图像处理技术,在子图像之间的重叠区域中自动地确定路径,以便选择从打印图像的视觉检查角度看具有最低可检测到可能性的元素。特别地,本文公开的方法和系统选择在检查图像时有效欺骗人眼的“模式识别”能力的图像元素。本文描述的图像处理装置可使用一个或多个图像处理技术来识别图像中导致改进的相邻子图像之间的拼接的特定元素。例如,在一种情况下,该装置识别对应于图像的图像数据中的图形边缘,并自动地确定跟随一个或多个检测到的边缘的路径。所得到的线对于人眼来说比例如分割图像的两个区域的线更不可见,在这两个区域的图像属性之间有更大的相似性。

图1是根据示例的装置100的简化示意图。本文描述的某些示例可在装置100的环境中实现。装置100包括图像处理器110。图1所示的图像处理器110包括中央处理单元(CPU)120、图形处理单元(GPU)130和存储器140,存储器140存储用于基于图像数据的属性将图像自动地分割为两个相邻的子图像的指令180。CPU 120被布置成处理诸如图像数据之类的数据。在本公开中,“图像数据”可包括图像的任何数字表示,即二维图像的数值表示,例如作为像素。图像的“子图像”包括图像的至少一部分。类似地,“子图像数据”可包括对应于子图像的图像数据的子集。

图1所示的装置100根据本文所描述的示例被布置成生成打印数据。图像处理器110被示为通信地耦合到打印设备150。在此,“打印数据”包括可操作以使打印设备150打印图像的任何数据,例如,使打印设备150在基板上的位置沉积打印液以产生打印输出的指令。在图1所示的装置100中,图像处理器110或打印设备150可被布置成基于图像数据生成打印数据。例如,图像处理器110的CPU 120可以生成可经由接口160发送到打印设备的打印数据。或者,打印设备150中的打印控制器(图1中未示出)可以利用从图像处理器110接收的图像数据生成打印数据。

在图1中,CPU 120通信地耦合到存储器140。存储器140可为布置成存储数据的任何易失性或非易失性存储器,并且可为只读或可读写存储器。CPU120通信地耦合到GPU130。GPU 130是被布置成从CPU 120发送和接收数据的专用处理单元。根据一个示例,GPU130可以从CPU 120接收图像数据,并且渲染可以在图形显示器上显示的图形。GPU还可以执行通用的和与打印相关的图像处理任务,这些任务不限于在显示器上渲染图形。图像处理器110进一步包括接口170,其允许一个或多个图形显示器通信地耦合到图像处理器110,并且允许用户与图像处理器110交互。

装置100进一步包括打印设备150,打印设备150经由接口160耦合到图像处理器110。打印设备150被布置成从图像处理器110接收图像数据和/或打印数据。当由打印控制器指示在基板上生成打印输出时,打印设备150可以根据打印数据在基板上生成打印输出。

根据本文描述的示例,打印设备150被限制为根据由打印设备150的打印配置数据指定的某些打印参数来生成打印输出。例如,打印设备150可以生成打印输出,该打印输出限制在一个或多个维度比如长度或宽度,例如,最大尺寸为1m×0.5m。本文中,如果打印数据能够被发送到打印设备,使得打印设备150可根据打印数据生成打印输出,则由图像数据定义的图像被打印设备150认为是“可打印的”,否则该图像被认为是“不可打印的”。

在本文描述的装置100的某些示例中,图像处理器110被布置成生成不可打印图像的可打印子图像。特别地,图像处理器110被布置成生成可打印的子图像,其中来自打印设备的结果输出使得在构成最终打印输出中的原始(不可打印的)图像的合成图像中单个打印的子图像难以辨识。

在图1中,正如现在所描述的,通过指令180将装置100配置为处理在打印设备150上不可打印的图像的图像数据。

根据第一示例,装置100可被布置成从装置100外部的设备接收图像数据。或者,图像处理器110的CPU 120可以访问存储在存储器140中的图像数据。

一旦访问图像数据,就将图像划分为子图像。在此,将图像“划分”为子图像是将图像分割为多个单独的子图像,这些子图像一起构成图像。在一个示例中,图像处理器110被配置为生成图像至至少两个相邻的子图像的划分。选择具有相交区域的至少两个相邻的子图像,并且它们本身可以或不可以在打印设备150上打印。

可以以这种方式执行划分,以确保生成的至少两个相邻子图像可在打印设备150上打印。在一种情况下,用户可以通过检查图像的子图像是否符合打印设备150的打印参数来检查将图像分割为至少两个相邻的子图像是否使得子图像可打印。或者,图像处理器110可被布置成从打印设备150接收打印配置数据,并确定至少两个相邻的子图像是否可在打印设备150上打印。

在操作中,装置100被配置成自动地确定从图像数据表示的图像的第一侧到图像的第二相对侧横穿该图像的路径,使得该路径将图像分成两个相邻的子图像。根据示例,如果图像是彩色图像,则图像处理器110首先将彩色图像转换为如图2a所示的灰度图像。对灰度图像应用边缘检测算法来识别图像中的边缘。可使用的示例边缘检测算法包括Canny边缘检测、Deriche边缘检测、Sobel算子、Prewitt算子等。图2b示出了将边缘检测算法应用于图2a所示图像时检测到的边缘的示例。

一旦识别了图像中的边缘,图像处理器110被布置成识别图像内的感兴趣区的区域200,所述感兴趣区域200包括大多数边缘(例如检测到的边缘的最大密度)。图2c示出从图2b所示的检测到的边缘中选择的感兴趣区域200。感兴趣区的区域200可以具有预定义的宽度(例如100mm),或者感兴趣区域的宽度可以取决于图像的尺寸或打印设备150的能力。感兴趣区域内的所有图形边缘被转换为轮廓,感兴趣区域200内的每个轮廓被分配唯一的数字。

如图2d所示,通常不会有跨越图像的整个宽度的不间断的边缘或轮廓。因此,为了识别横穿图像的路径,图像处理器110可以选择多个轮廓来形成路径的各部分。根据示例,这可以通过将图论技术应用于感兴趣区域200内的检测到的边缘来实现。为此,可以将轮廓映射为具有多个边缘或弧的图形的节点,在图形中,每个弧耦合两个节点并且对应于图像中由节点表示的两个轮廓之间的最短距离的权重。也就是说,对于相应图形边缘上的任意两点,权重计算为图像中两个检测到的图形边缘之间的最短距离。图3示出了表示节点和节点之间的加权弧的示例图。

为了识别用于将图像分割为两个相邻子图像的横穿图像的路径,图像处理器110分析该图形以基于与每个弧相关联的权重值来确定穿过该图形的最短路径。例如,在图3所示的示例图形中,确定了源节点“1”和目标节点“2”之间的最短路径。在一些示例中,可以使用Dijkstra算法来确定穿过图形的最短路径。

根据一些示例,轮廓图形可以包括每个节点到其他节点的子集合(例如节点的k个近邻)的弧,而不是在节点和所有其他节点之间提供弧。这可以显著地降低路径确定的计算复杂度,特别是当k是相对较小的数时(例如对于k值在2和4之间)。

图像处理器110基于确定的穿过图形的最短路径来确定从图像的一侧到另一侧的路径400。例如,可以通过将由所选节点标识的轮廓与表示相邻轮廓之间最短距离的线性部分组合来生成过图像的路径,如图4所示。图像处理器110被配置成基于横穿图像的路径400将图像分成至少两个相邻的子图像。

根据一个示例,横穿图像的路径400用于生成图5a所示的互补二值掩膜500、502。这些掩膜可以与原始图像组合,例如通过将掩膜与图像相乘来生成两个子图像。

根据一些示例,在打印子图像时,掩膜可以被模糊,或者阿尔法(alpha)混合以提供更平滑的帧间过渡。可以控制混合的长度和浓度以减少最终打印图像中的可见伪影。图5b示出了互补掩膜504、506,其具有3个像素长的阿尔法混合,一测的浓度为33%,另一侧的浓度为67%。

在非理想打印设备中,当打印子图像时,一个子图像的33%加上另一个子图像的67%可能不等于最终打印图像中的100%密度。为了降低最终打印图像中拼接的可见性,在一些示例中,在过渡区域内原始数字图像的灰度级(对应于alpha混合长度)降低一个因子(例如80%)。

然后,图像处理器110可以将生成的互补掩膜与原始图像数据相乘,以生成图6所示的两个子图像600、602。这导致至少两个修改的相邻子图像,每个子图像可在打印设备150上打印。

装置100被配置成生成至少第一打印数据和第二打印数据,其可操作使得打印设备150基于通过自动确定的路径对相邻子图像的分割分别打印至少第一和第二打印件。如前所述,图像处理器110可被布置成在至少两个相邻子图像之间分割图像之后,从图像数据生成打印数据。在示例中,基于自动确定的路径400,从图像分割成至少两个修改过的相邻子图像而产生的图像数据可以被发送到打印设备150,打印设备150被布置成基于接收到的图像数据生成打印数据,例如在打印控制器处(图1中未示出)。

类似于由图像的划分所定义的至少两个相邻的子图像,图像处理器110可以确定在打印设备上是否可以打印由分割相邻子图像之间的跨越区域而产生的修改的相邻子图像。在修改后的相邻子图像不可打印的情况下,可以确定新的划分,其包含可打印的相邻子图像或使得产生的修改后的子图像可打印。

图7是示出根据示例生成打印数据的方法700的框图。图7所示的方法700可结合图1所示的装置100来使用以生成打印数据。在框702处,接收在打印设备的单一打印上不可打印的图像的图像数据。该图像数据可以由图1所示的装置100的图像处理器110接收。如果图像数据包括彩色图像,则可以在继续该方法之前将彩色图像转换为灰度。在框704处,对图像数据执行边缘检测以检测图像中的多个边缘,例如如图2b所示。在框706处,基于检测到的边缘自动地识别横穿图像的路径400。在框708处,基于穿过图像的确定路径将图像分割为两个相邻的子图像,由此产生可在打印设备的单一打印上打印的至少两个相邻的子图像。在框710处,生成与第一和第二子图像相对应并可操作使打印设备分别打印至少第一和第二打印件的第一和第二打印数据。另外,可以方框710之后,向打印设备发送打印数据。

在一些示例中,该方法包括通过识别图像中具有最大检测边缘集中度的区域来识别图像中的感兴趣区域200。感兴趣区域的宽度可以基于打印设备的特性来确定,或者可以是预定值,例如100mm。在一些示例中,该方法包括将感兴趣区域内检测到的边缘转换为轮廓,并为感兴趣区域200内的每个轮廓分配唯一的识别号。

在一些示例中,该方法包括生成具有多个表示轮廓的节点和连接节点对的弧的图形,并且为每个弧分配权重,分配给每个弧的权重代表由各个节点表示的两个轮廓之间的最短距离。在一些示例中,不是在一个节点和所有其他节点之间提供弧,而是可以为每个单独的节点生成对应于k个最接近的其他节点的弧,其中k等于相对较低的数(例如,对于2和4之间的k)。

然后可以应用图形分析技术来确定从与图像的一个边缘相关联的源节点到与图像的另一个相对边缘相关联的目标节点的穿过图形的最短路径。例如,可以使用Dijkstra算法。然后,与所确定的穿过图形的最短路径相关联的节点来定义了形成横穿图像的路径400的轮廓,以用于将图像分割为两个相邻的子图像。

根据一些示例,源节点可以表示包括与感兴趣区域的第一边缘对齐的线的第一轮廓202,例如,具有与感兴趣的区域相同宽度并且跨越感兴趣的区域的第一侧的线。类似地,目的地节点可以表示第二轮廓204,该第二轮廓204包括与感兴趣区域的第一边缘相对的第二边缘对齐的线。

根据一些示例,该方法可以进一步包括基于穿过图像的路径400生成互补的二值掩膜500、502。Alpha混合可应用于互补掩膜504、506的边缘,以在打印子图像时提供更平滑的帧到帧过渡。过渡区域中的图像的灰度可以通过因子(例如80%)来调整,以帮助进一步降低最终打印图像中的拼接路径的可见性。

然后可以通过将原始图像数据与互补掩膜相乘(有或无alpha混合)来生成相邻的子图像。这导致至少两个修改的相邻子图像,每个子图像可在打印设备150上打印。

本文描述的方法和系统提供了用于打印过大而无法在打印设备上打印的超大图像的手段。基于朴素的拼接处理打印图像的子图像,其中图像被边缘对边缘纠结在一起,导致不令人满意且低质量的图像打印,其中子图像之间的边界很容易被辨别。由于人眼的高模式识别能力,甚至可以在最终的打印品中容易地分辨出拼接中的子图像之间的窄重叠区域。而本方法和装置通过基于在图像中检测到的边缘自动地确定穿过图像的路径,并且基于所确定的路径来分割图像,使得子图像之间的生成的路径很难在视觉检查中检测到来解决这一问题。这将导致超大图像的更高质量的打印输出。本文公开的方法和装置产生超过先前技术的质量提高的无缝打印输出。

本文所述的某些方法和系统可以由一个或多个处理器实现,该处理器处理从非临时存储介质中检索的程序代码。图8示出了包括耦合到至少一个处理器820的计算机可读存储介质830的设备的示例800。计算机可读介质830可以是可以包含、存储或维护程序和数据以供指令执行系统使用或与指令执行系统相关联的任何介质。计算机可读介质可以包括许多物理介质中的任何一种,例如电子的、磁性的、光学的、电磁的或半导体介质。合适的机器可读介质的更具体示例包括但不限于硬盘驱动器、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器或便携式光盘。

在图8中,计算机可读存储介质包括程序代码,用于:操作802,接收图像的图像数据,图像在打印设备的单一打印上不可打印;操作804,对图像执行边缘检测以检测多个边缘;操作806,基于检测到的边缘自动识别穿过图像的路径;操作808,基于确定的路径将图像分割为两个相邻的子图像;操作810,并且生成至少第一和第二打印数据,该第一和第二打印数据可操作以使打印设备打印两个相邻的子图像。

已经给出了前面的描述以说明和描述所描述的原理的示例。本说明书并非是详尽无遗的,也不是为了将这些原则限制为所公开的任何精确形式。根据以上的教导,许多修改和变化是可能的。应当理解,和任何一个示例相关联地描述的任何特征可以被单独使用,或者与描述的其他特征组合使用,并且也可以与任何其他示例的任何特征组合使用,或者与任何其他示例的任何组合相组合来使用。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:加速的深度学习

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!