CN105989602B - 有噪图像中的斑点检测 - Google Patents
有噪图像中的斑点检测 Download PDFInfo
- Publication number
- CN105989602B CN105989602B CN201610091101.3A CN201610091101A CN105989602B CN 105989602 B CN105989602 B CN 105989602B CN 201610091101 A CN201610091101 A CN 201610091101A CN 105989602 B CN105989602 B CN 105989602B
- Authority
- CN
- China
- Prior art keywords
- pixel
- spot
- candidate blob
- blob contour
- profile
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 82
- 238000007689 inspection Methods 0.000 claims description 91
- 238000012545 processing Methods 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 71
- 230000004044 response Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 46
- 230000008569 process Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 11
- 238000003384 imaging method Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000004438 eyesight Effects 0.000 description 7
- 239000000463 material Substances 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- WABPQHHGFIMREM-UHFFFAOYSA-N lead(0) Chemical compound [Pb] WABPQHHGFIMREM-UHFFFAOYSA-N 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/48—Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
-
- 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/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
-
- 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/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- 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/20092—Interactive image processing based on input by user
- G06T2207/20104—Interactive definition of region of interest [ROI]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Geometry (AREA)
Abstract
本文讨论了与有噪图像中的斑点检测有关的技术。这些技术可以包括:穿越与候选斑点轮廓像素相关联的轮廓到达沿着预定方位的直线像素;检测该直线像素相对于该候选斑点轮廓像素的方向;继续穿越作为斑点的轮廓的该轮廓,或者基于所检测到的方向来检测第二候选斑点轮廓像素。
Description
背景技术
在诸如计算机视觉和目标检测之类的成像处理上下文中,期望对于表示场景的图像数据中的斑点(blob)进行检测。例如,斑点可以包括某个属性或者某些属性基本不变的图像区域,使得该斑点的像素在某些方式上彼此之间相类似。这种斑点可以用于目标检测、目标识别、目标跟踪和其它计算机视觉实现。例如,斑点可以与诸如面部、人、动物、汽车等等之类的对象相关联。
期望的是,甚至在诸如深度图像(或深度图)和/或有噪彩色图像之类的有噪图像数据中高效地检测斑点。但是,当前的斑点检测技术在这些有噪深度图像和/或有噪彩色图像中检测斑点时可能具有困难。例如,这些有噪深度图像和/或有噪彩色图像可能包括一些孔洞(例如,具有丢失或不正确值的小像素区域)。斑点中的这些孔洞可能造成很难检测斑点的外形,这是由于孔洞轮廓可能被错误地检测成该斑点的外形或轮廓的一部分。例如,诸如尝试在第二处理阶段对斑点进行分类的均值偏移技术之类的边缘检测技术,可能在这些上下文中不能提供高质量的斑点检测,而且尝试对整个斑点进行涂色的洪水填充技术可能需要非常大量的计算资源。
此外,在低质量(例如,有噪的)和高质量(例如,无噪的)图像中提供计算高效的、低存储器带宽以及能量高效的斑点检测是有利的。但是,当前的技术是计算低效的,可能需要大量的存储器使用,这使得这些技术就功率使用和性能而言是低效的。这些限制特别是在诸如移动设备或可穿戴设备实现之类的实现中造成了困难。
执行具有更高准确性和/或更低计算需求的斑点检测会是有利的。关于这些和其他方面的考虑目前需要本文所给出的改进。随着提供高质量图像处理和计算机视觉变得越来越普遍,这些改进会根据期望而变成关键。
附图说明
在附图中,通过示例的方式而不是限制的方式描绘了本文所描述的材料。为了描绘的简单和清楚起见,附图中说明的元素没有必要按比例进行描绘。例如,为了清楚起见,可以将一些元素的尺寸相对于其它元素进行夸大。此外,在认为适当的地方,对一些附图标记在附图之中进行重复,以指示相应的或者类似的元素。
图1示出了用于执行斑点检测的示例性过程;
图2示出了示例性输入图像,其包括具有示例性孔洞的示例性斑点;
图3示出了与示例性斑点相关联的示例性初始斑点像素;
图4示出了与示例性斑点相关联的示例性候选斑点轮廓像素;
图5示出了与示例性斑点相关联的示例性直线像素(inline pixel);
图6示出了与示例性斑点相关联的示例性候选斑点轮廓像素;
图7示出了与示例性斑点相关联的示例性直线像素;
图8示出了与示例性斑点相关联的示例性直线像素;
图9示出了用于执行斑点检测的示例性设备;
图10是描绘用于执行斑点检测的示例性过程的流程图;
图11是描绘用于执行斑点检测的示例性系统的示意图;
图12是一种示例性系统的示意图;以及
图13示出了全部根据本公开内容的至少一些实现来排列的示例性的小形状因素设备。
具体实施方式
现参照所附的附图来描述一个或多个实施例或实现。虽然讨论了特定的配置和排列,但应当理解的是,这仅仅是用于示例性说明目的。相关领域普通技术人员将认识到,在不脱离本文的描述的精神和范围的基础上,也可以使用其它配置和排列。对于相关领域的普通技术人员来说显而易见的是,在不同于本文所描述的各种其它系统和应用中,也可以使用本文所描述的技术和/或排列。
虽然下面的描述阐述了例如可以在诸如片上系统(SoC)架构之类的架构中显现的各种实现,但本文所描述的技术和/或排列的实现并不限于特定的架构和/或计算系统,其可以通过用于类似目的的任何架构和/或计算系统来实现。例如,使用诸如多个集成电路(IC)芯片和/或封装的各种架构和/或诸如多功能设备、平板设备、智能电话等等之类的各种计算设备和/或消费电子(CE)设备,可以实现本文所描述的技术和/或排列。此外,虽然下面的描述可能阐述了诸如逻辑实现、系统部件的类型和相互关系、逻辑划分/集成选项等等之类的众多细节,但可以在不利用这些特定细节的情况下实现所要求保护的主题。在其它实例中,为了不对本文所公开的材料造成模糊,没有详细地示出诸如控制结构和全部的软件指令序列之类的一些材料。
本文所公开的材料可以使用硬件、固件、软件或者其任意组合来实现。本文所公开的材料还可以实现成在机器可读介质上存储的指令,该指令可以由一个或多个处理器进行读取和执行。机器可读介质可以包括用于存储或发送具有能由机器(例如,计算设备)读取的形式的信息的任何介质和/或装置。例如,机器可读介质可以包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或者其它形式的传播信号(例如,载波波形、红外线信号、数字信号等等)以及其它形式。
说明书中对于“一种实现”、“一个实现”、“一个示例性实现”等等的引用,指示所描述的实现可以包括具体特征、结构或者特性,但并不需要每一个实施例都包括该特定特征、结构或特性。此外,这种短语并不是必须地指代相同的实现。此外,当结合实施例来描述特定的特征、结构或特性时,提出了结合其它实现(无论其是否在本文中进行了明确描述)来实现这种特征、结构或特性,也在本领域普通技术人员的知识范围之内。
本文描述了涉及斑点检测的方法、设备、装置、计算平台和制品,具体而言,涉及基于检测在候选斑点轮廓像素与和该斑点轮廓像素成一直线的像素之间的方向,并基于与该候选斑点轮廓像素相关联的轮廓,来执行斑点检测。
如上所述,在诸如计算机视觉和目标检测之类的成像处理上下文中,斑点检测准确性、速度和计算效率对于提供诸如目标检测、目标识别、目标跟踪、计算机视觉等等之类的各种各样的应用来说可能是重要的。例如,甚至在诸如深度图像(或深度图)和/或有噪彩色图像之类的有噪图像数据中高效地检测斑点会是有利的。例如,这些图像可以包括将被进行检测的斑点中的孔洞(例如,具有丢失或不正确值的小像素区域),这些孔洞可能在斑点的检测中造成困难。此外,在任何质量的图像中提供计算高效的、低存储器带宽以及能量高效的斑点检测是有利的。在本文所讨论的一些实施例中,执行斑点检测可以包括:检测与输入图像中的斑点相关联的候选斑点轮廓像素。例如,可以通过下面的方式来来检测候选斑点轮廓像素:确定该斑点内的初始像素,沿着预定方位朝着预定方向进行移动,检验像素是否包含在该斑点中。例如,候选斑点轮廓像素可以是未通过斑点包含性检验的像素。
基于候选斑点轮廓像素,可以穿越(traverse)轮廓(例如,可以穿越与候选斑点轮廓像素相关联的轮廓)到达沿着预定方位与该候选斑点轮廓像素成一直线的直线像素。该预定方位可以是诸如垂直方向之类的任何方向。可以确定沿着该直线像素和候选斑点轮廓像素之间的预定方位的方向,并且基于所检测到的方向,可以继续穿越该轮廓(例如,确定与该候选斑点轮廓像素相关联的轮廓是该斑点的轮廓),或者可以确定第二候选斑点轮廓像素(例如,确定与该候选斑点轮廓像素相关联的轮廓是孔洞的轮廓)。例如,如果从该候选斑点轮廓像素到该直线像素的方向与用于确定该直线像素的预定方向相同,则可以确定与该候选斑点轮廓像素相关联的轮廓是孔洞的轮廓,以及如果从该候选斑点轮廓像素到该直线像素的方向与用于确定该直线像素的预定方向相反,则可以确定与该候选斑点轮廓像素相关联的轮廓是该斑点的轮廓。
当确定与该候选斑点轮廓像素相关联的轮廓是该斑点的轮廓时,可以通过继续穿越该轮廓到达沿着所述预定方位与该斑点轮廓像素(例如,先前标记成候选斑点轮廓像素的像素)成一直线的另一个直线像素,来继续该处理。例如,第二直线像素可以与该斑点轮廓像素处于相同的像素位置(例如,它们可以是同一个像素)。基于所穿越的轮廓,可以生成轮廓数据(例如,斑点轮廓数据),并输出成斑点的轮廓。
当确定与候选斑点轮廓像素相关联的轮廓是孔洞的轮廓,并且确定了第二候选斑点轮廓像素时,通过穿越与第二候选斑点轮廓像素相关联的第二轮廓到达第二直线像素(如先前所讨论的),来继续该处理。例如,可以确定沿着第二直线像素和第二候选斑点轮廓像素之间的预定方位的方向,并且基于所检测到的方向,可以继续穿越该轮廓(例如,检测到了该斑点轮廓),或者可以确定第三候选斑点轮廓像素(例如,检测到了另一个孔洞轮廓)。可以继续该处理,直到检测到了并穿越了该斑点轮廓,并生成了所讨论的斑点轮廓数据为止。例如,该处理可以区分图像中的孔洞的轮廓与期望进行检测的真正目标外形。
这些技术可以在诸如有噪图像之类的图像中提供快速斑点检测、斑点提取或者轮廓提取。例如,本文所讨论的技术可以提供节省功率、提高性能、并且更高效地使用系统资源的更轻量级计算。在一些实现中,与先前技术相比,所讨论的技术可以比先前技术运行更快多达十倍,减少功耗三分之二,并提供5x的存储器占用减少。此外,这种斑点轮廓数据可以用于计算机视觉、特征检测、目标检测、目标分割、目标识别、视觉理解、目标去除或增强、形状检测等等。
图1示出了根据本公开内容的至少一些实现来排列的、用于执行斑点检测的示例性过程100。过程100可以包括如图1中所示的一个或多个操作101-109。过程100可以由设备(例如,设备900或者本文所讨论的任何其它设备或系统)来执行,或者过程100的一部分可以由用于执行斑点检测的设备来执行。可以针对任意数量斑点、潜在的斑点区域、输入图像、输入图像的感兴趣区域、视频图像帧、其一部分等等,来重复过程100或者过程100的一部分。
如所示出的,过程100可以从开始操作101而开始在操作102处,“选择与斑点的感兴趣区域相关联的候选初始斑点像素(P0)”,其中,可以针对输入图像的斑点或者潜在斑点(例如,预期的斑点),来选择候选初始斑点像素P0。例如,该候选初始斑点像素可以是进行检验以判断是否被包含在该斑点中的初始像素。例如,可以接收到输入图像和相关联的感兴趣区域数据等等,并且可以基于该感兴趣区域数据来选择该候选像素。例如,该感兴趣区域数据可以针对该输入图像来指示斑点的区域或者候选斑点区域等等。该感兴趣区域数据可以使用任何适当的技术或者技术集来指示该区域。例如,感兴趣区域可以规定与输入图像的一个区域相关联的方形、矩形或者任何其它形状。此外,可以使用任何适当的技术或技术集来选择候选像素。例如,该候选像素可以在感兴趣区域之中进行随机地选择、在感兴趣区域的中心处进行选择、基于感兴趣区域中的最佳猜测位置来进行选择等等。
图2示出了根据本公开内容的至少一些实现来排列的、包括具有示例性孔洞203、204的示例性斑点202的示例性输入图像201。如图2中所示,输入图像201可以包括针对于背景205的具有孔洞203、204的斑点202。如本文所使用的,输入图像201可以包括任何适当的图像数据,例如针对于输入图像201的像素的像素值等等。在一些例子中,输入图像201可以是深度图像或者深度图等等,使得输入图像201或者相关联的输入图像数据包括每一个像素(例如,通道)的数据,其与从视点到场景对象表面的距离有关。例如,对于表示更接近视点或焦平面等等的对象的对象或像素来说,这些像素值可以更大(或更小)。例如,输入图像201的每一个像素可以包括与视点或焦平面等等的距离相关联的距离值。在其它例子中,输入图像201可以是彩色图像,使得输入图像201或者相关联的输入图像数据可以是针对于特定颜色空间(例如,红绿蓝(RGB)颜色空间等等)的像素值或一些像素值(例如,通道)。例如,输入图像201的每一个像素可以包括针对红色的值、针对绿色的值、以及针对蓝色的值。虽然参照RGB颜色空间进行讨论,但输入图像201可以包括任何适当颜色空间中的像素值。如所讨论的,在一些例子中,这种深度图像数据或彩色图像数据可以包括孔洞(例如,具有丢失或不正确值的小像素区域)。
如所示出的,在一些例子中,输入图像201可以包括斑点202中的孔洞203、204。例如,输入图像201可以是有噪图像等等。如上所述,孔洞203、204可以包括丢失的或不正确的像素值。如所示出的,在一些例子中,相对于与斑点202的值具有相同或类似的值,孔洞203、204可以具有与背景205的值相同或类似的值。在所示出的例子中,输入图像201包括具有两个孔洞203、204的一个斑点202。但是,输入图像201可以包括任意数量的斑点和/或孔洞。
此外,如参照操作102所讨论的,感兴趣区域数据可以与输入图像201相关联。例如,感兴趣区域数据(没有示出)可以与斑点202相关联,使得感兴趣区域数据规定斑点202周围的边框。输入图像201和/或该感兴趣区域数据可以是经由任何适当的源来接收的。例如,输入图像201可以是从图像传感器、成像传感器、图像信号处理器、成像管道等等来接收的。此外,感兴趣区域数据可以是从图像信号处理器、成像管道等等接收的。在一些例子中,感兴趣区域数据可以是基于在先前的输入图像中检测的斑点(例如,一系列视频帧中的先前图像帧)。
返回到图1,处理可以继续在判定操作103处进行,“P0在斑点之中?”,其中可以关于候选初始斑点像素P0是否位于斑点之中进行判断。可以使用检验像素是否包含在斑点之中的任何适当技术或技术集来进行该判断。例如,对于深度图像而言,针对包含在斑点中的检验可以包括:绝对深度值检验(例如,判断候选初始斑点像素的深度值是大于还是小于门限)、相邻像素之间的深度距离检验等等。在一些例子中,针对包含在斑点中的检验可以包括方差检验(例如,判断候选初始斑点像素的方差是高于还是低于门限)。例如,可以将针对包含在斑点中的检验表征为斑点检验。在一些例子中,可以基于要进行检测的斑点类型来改变斑点检验,和/或可以将斑点检验提供成输入。例如,在操作103处将使用的斑点检验可以基于斑点类型来选择,基于斑点如何被定义来选择,基于如何检测斑点来选择,由用户进行选择,基于输入图像201的特性来选择等等。
如所示出的,如果候选初始斑点像素不在该斑点之中,则过程100可以返回到操作102,此时可以选择第二或者另一个候选初始斑点像素P0。例如,被确定为不在斑点之中的候选初始斑点像素可以位于孔洞(例如,孔洞203、204)或者输入图像(例如,输入图像201,请参照图2)的背景(例如,背景205)之中。可以使用任何适当的技术或技术集(例如,随机地、基于探测模式等等),来选择该第二候选初始斑点像素。此外,可以在判定操作103处,针对于是否包含在斑点之中,对第二候选初始斑点像素进行评估。可以继续该处理,直到检测到或者确定候选初始斑点像素位于该斑点之中为止。例如,操作102和操作103可以尝试选择最佳猜测候选初始斑点像素,并验证该像素位于该斑点之中。如果是,则处理可以继续进行,如果不是,则可以选择另一个像素。
如果该候选初始斑点像素位于该斑点之中(或者确定随后选择的候选初始斑点像素位于该斑点之中),则可以将该候选初始斑点像素表征为初始斑点像素,过程100可以在操作104处继续进行,如下面所进一步讨论的。
图3示出了根据本公开内容的至少一些实现来排列的、与斑点202相关联的示例性初始斑点像素301。如图3中所示,初始斑点像素301可以位于斑点202之中或之内,并且初始斑点像素301不位于孔洞203、204中的任何一个之内。如上所述,初始斑点像素301可以位于斑点202中的任何位置,并且位于孔洞203、204之外。
返回到图1,处理可以继续在操作104处进行,“从P0开始搜索到达候选斑点轮廓的像素(P1)”,其中,可以执行搜索以确定候选斑点轮廓像素。该搜索可以使用任何适当的技术或技术集来确定候选斑点轮廓像素。此外,候选斑点轮廓像素可以是与候选斑点轮廓相关联。例如,过程100可以提供继续处理,以判断该候选斑点轮廓像素和相关联的轮廓是该斑点的轮廓的一部分,还是一个孔洞的轮廓的一部分。
图4示出了根据本公开内容的至少一些实现来排列的、与斑点202相关联的示例性候选斑点轮廓像素401。如上所述,可以使用任何适当的技术或者技术集来确定候选斑点轮廓像素401。如图4中所示,在一些例子中,可以通过下面方式来确定候选斑点轮廓像素401:对沿着预定方位403且离初始斑点像素301处于预定方向404的像素402进行检验。例如,操作104可以开始于初始斑点像素301处并且检验处于特定方向(例如,沿着预定方位403的预定方向404)中的像素,直到发现未通过斑点包含性检验的像素为止。该斑点包含性检验可以包括诸如参照操作103所讨论的那些的任何适当的检验。在一些例子中,操作104和操作103的斑点包含性检验可以是相同的,而在其它例子中,它们可以是不同的。
如图4中所示,在一些例子中,预定方位403可以是垂直方向,使得预定方向404和预定方向405可以分别是向上和向下(或者向北和向南等等)。但是,预定方位403可以是任何适当的方位(例如,水平),使得预定方向404和预定方向405可以分别是向左和向右(或向西和向东等等),预定方位403可以是45度方位等等。在一些例子中,在对输入图像201进行处理之前,可以对其进行旋转。在本文的讨论中,为了便于呈现的清楚起见,可以使用垂直的预定方位以及向上和向下的方向。但是,如上所述,可以使用任何适当的方位和方向。
此外,在所示出的例子中,候选斑点轮廓像素401与孔洞204和/或孔洞204的轮廓相关联。但是,候选斑点轮廓像素401可以与孔洞203、另一个孔洞(没有示出)或者斑点202自身的轮廓相关联(例如,如参照图6的候选斑点轮廓像素601所讨论的)。为了便于呈现的清楚起见,提供了图4的例子。
返回到图1,处理可以继续在操作105处进行,“穿过候选斑点轮廓到达与像素P1成一直线的直线像素(P2)”,其中,可以穿过或者穿越与候选斑点轮廓像素相关联的轮廓,直到确定直线像素为止。例如,该直线像素可以是沿着预定方位与候选斑点轮廓像素成一直线。可以使用任何适当的技术或技术集来穿越该轮廓。在一些例子中,可以使用TheoPavlidi技术等等来穿越该轮廓。此外,可以使用任何适当的技术或技术集来检测直线像素。例如,可以提供直线检验(比如,当预定方位是垂直时,对水平方向或x方向像素位置值进行比较,或者当预定方位是水平时,对垂直方向或y方向像素位置值进行比较)。
图5示出了根据本公开内容的至少一些实现来排列的、与斑点202相关联的示例性直线像素501。如上所述,可以使用任何适当的技术或技术集来确定直线像素501。如图5中所示,在一些例子中,可以通过下面方式来确定直线像素501:穿越孔洞204的轮廓502(例如,与候选斑点轮廓像素401相关联的轮廓),直到到达直线点(inline point)501,使得直线像素501沿着预定方位403与候选斑点轮廓像素401成一直线为止。例如,直线像素501和候选斑点轮廓像素401可以具有相同的水平位置或者相同的x方向像素位置值等等。例如,可以基于诸如垂直直线检验(例如,相同的水平位置)、水平直线检验(例如,相同的垂直位置)等等之类的直线检验,来确定直线像素501,使得其沿着预定方位403与候选斑点轮廓像素401成一直线。
返回到图1,处理可以继续在判定操作106处进行,“比较P1和P2之间的方向”,其中,可以关于在操作104处确定的候选斑点轮廓像素和在操作105处确定的直线像素之间的方向进行判断。可以使用任何适当的技术或技术集,来确定候选斑点轮廓像素和直线像素之间的方向。例如,如果预定方位是垂直的,则可以对垂直或y方向像素位置值进行比较,使得可以确定该直线像素与候选斑点轮廓像素相比是在上面、下面,还是处于相同的位置。在预定方位是水平的例子中,可以对水平或x方向像素位置值进行比较,使得可以确定该直线像素与候选斑点轮廓像素相比是在左边、右边,还是处于相同的位置。但是,如上所述,可以使用任何适当的预定方位,并且可以基于该预定方位来进行适当的方向检验。
如所示出的,如果直线像素P2处于与从候选斑点轮廓像素P1开始的搜索方向(例如,在操作104处提供的搜索方向)相反的方向,则处理可以继续在操作105处进行。例如,如果该直线像素处于与从候选斑点轮廓像素开始的搜索方向相反的方向,则发现了斑点轮廓,并且在操作105处执行的轮廓穿越确定了与该候选斑点轮廓像素相反的斑点轮廓上的像素(例如,基于直线像素处于与搜索方向相反的方向中,将该像素表征为斑点轮廓像素)。如所示出的,在这些实例中,过程100可以继续在操作105处进行,此时,可以继续对该轮廓进行穿过或穿越等等(如上面所讨论的),直到确定了另一个直线像素(例如,其还标记成P2)为止。在这些例子中,新发现的直线像素P2将与斑点轮廓像素(例如,原来的候选斑点轮廓像素)P1相同。
如果直线像素P2处于与从候选斑点轮廓像素P1开始的搜索方向相同的方向,则处理可以继续在操作107处进行,“将P2设置为新的起始点像素(P0:=P2)”,其中,可以将直线像素P2设置为新的起始点像素。例如,可以利用直线像素P2来替代在操作102和操作103处确定的初始斑点像素P0。使得可以将该直线像素表征为初始斑点像素或者起始点像素。例如,该直线像素处于与从候选斑点轮廓像素开始的搜索方向相同的方向,则发现了孔洞轮廓,在操作处执行的穿越确定了与候选斑点轮廓像素相反的孔洞轮廓上的像素(例如,基于该直线像素处于与搜索方向相同的方向,将该像素表征为非斑点轮廓像素)。如所示出的,在这些实例中,可以建立新的初始斑点像素或者起始点像素,处理可以从操作107转到在操作105继续,此时,可以确定新的候选斑点轮廓像素(例如,沿着斑点轮廓或者在另一个孔洞处)、可以确定新的直线像素(例如,如上所述),可以应用判定操作106(例如,也如上所述)。
在这些例子中,新的直线像素可以处于与从新的候选斑点轮廓像素开始的搜索方向相反的方向(例如,检测到了斑点轮廓,并且将新的候选斑点轮廓像素表征为斑点轮廓像素),或者新的直线像素可以处于与从新的候选斑点轮廓像素开始的搜索方向相同的方向(例如,检测到了另一个孔洞)。如果检测到了斑点轮廓,则处理可以继续在操作105处进行,直到直线像素处于与斑点轮廓像素相同的位置。如果检测到了另一个孔洞,则可以从操作104处开始重复所描述的处理。
如果直线像素P2处于与候选斑点轮廓像素P1相同的位置,则处理可以从操作107转到在操作108继续,“将在P1处起始和结束的轮廓返回成斑点轮廓”,其中,可以生成并提供与所穿越的轮廓相关联的轮廓数据,在操作109处结束。例如,在这些实例中,在至少第二时间上确定了直线像素P2(例如,检测到处于与从候选斑点轮廓像素开始的搜索方向相反的方向中的先前直线像素P2),并且已将候选斑点轮廓像素表征为斑点轮廓像素。在这些例子中,当穿越斑点轮廓时,操作105将返回到该斑点轮廓像素。例如,从斑点轮廓像素穿越到处于相同位置的直线像素(例如,该斑点轮廓像素和直线像素是相同的像素)的轮廓是该斑点的轮廓,并且可以生成并提供与该轮廓相关联的数据,以便其它设备、模块、应用等等来使用。
返回到图5,如上所述,可以基于穿越孔洞204的轮廓502,来检测直线像素501。此外,直线像素501可以处于与从候选斑点轮廓像素401开始的搜索方向(例如,沿着预定方位403所预定的方向)相同的方向。例如,参照判定操作106,可以检测到直线像素501处于与从候选斑点轮廓像素401开始的搜索方向相同的方向。在这些例子中,如上所述,处理可以继续在操作107处进行。
图6示出了根据本公开内容的至少一些实现来排列的、与斑点202相关联的示例性候选斑点轮廓像素601。如图6中所示,可以将直线像素501表征为新的初始斑点像素602(或者新的起始像素等等)。例如,可以将直线像素501表征为操作107处的新的初始斑点像素602(请参见图1)。此外,可以通过检验沿着预定方位403并在从初始斑点像素602开始的预定方向404中的像素603是否包含在斑点202中,来将候选斑点轮廓像素601确定成候选斑点轮廓像素。例如,操作104可以开始于初始斑点像素602,并对像素603进行检验,直到发现未通过斑点包含性检验的像素为止。该斑点包含性检验可以包括诸如本文所讨论的那些检验之类的任何适当检验。如上所述,在一些例子中,可以基于初始斑点像素602并随后穿越与孔洞204相关联的轮廓,来确定候选斑点轮廓像素601(例如,沿着斑点202的轮廓的候选斑点轮廓像素)。在其它例子中,在没有第一次穿越与孔洞相关联的轮廓的情况下,可以确定候选斑点轮廓像素601,或者在穿越与多个孔洞相关联的轮廓之后,可以确定候选斑点轮廓像素601。
图7示出了根据本公开内容的至少一些实现来排列的、与斑点202相关联的示例性直线像素701。如上所述,可以使用过程100的操作105处的任何适当技术或技术集(请参见图1),来确定直线像素701。如图7中所示,在一些例子中,可以通过下面方式来确定直线像素701:穿越斑点202的轮廓702(例如,与候选斑点轮廓像素601相关联的轮廓),直到到达直线点701,使得直线像素501沿着预定方位403与候选斑点轮廓像素601成一直线为止。例如,直线像素701和候选斑点轮廓像素601可以具有相同的水平位置或者相同的x方向像素位置值等等。例如,可以基于诸如垂直直线检验(例如,相同的水平位置)、水平直线检验(例如,相同的垂直位置)等等之类的直线检验,对直线像素701进行确定,使得其沿着预定方位403与候选斑点轮廓像素601成一直线。
此外,直线像素701可能处于与从候选斑点轮廓像素601开始的搜索方向(例如,该搜索方向用于从初始斑点像素602开始来确定候选斑点轮廓像素601)相反的方向(例如,沿着预定方位403朝着预定方向405)。例如,参见判定操作106,可以检测直线像素701处于与从候选斑点轮廓像素601开始的搜索方向(例如,在操作104处使用的搜索方向)相反的方向。在这些例子中,如上所述,处理可以继续在操作105处进行(请参见图1)。例如,处理可以继续,使得继续穿越斑点202的轮廓702。此外,可以基于所检测到的在直线像素701和候选斑点轮廓像素601之间的方向,将候选斑点轮廓像素601表征为斑点轮廓像素。
图8示出了根据本公开内容的至少一些实现来排列的、与斑点202相关联的示例性直线像素801。如上所述,从直线像素701开始(例如,从处于与斑点轮廓像素开始的搜索方向的相反方向的直线像素开始),处理可以继续在操作105处进行,以继续穿越该斑点轮廓(请参见图1),直到确定另一个直线像素为止。如图8中所示,在一些例子中,可以通过下面方式来确定直线像素801:穿越斑点202的轮廓702(例如,与候选斑点轮廓像素601相关联的轮廓),直到到达直线点801,使得直线像素801沿着预定方位403与候选斑点轮廓像素601成一直线为止。例如,直线像素801和候选斑点轮廓像素601可以具有相同的水平位置或者相同的x方向像素位置值等等。例如,可以基于诸如垂直直线检验(例如,相同的水平位置)、水平直线检验(例如,相同的垂直位置)等等之类的直线检验,来确定直线像素801,使得其沿着预定方位403与候选斑点轮廓像素601成一直线。
在该实例中,如图8中所示,由于穿越了斑点202的轮廓702的全部,候选斑点轮廓像素601和直线像素801可以具有相同的位置(例如,它们可以是相同的像素)。此外,如参照图1所讨论的,在操作108等等处,可以基于轮廓702来生成与轮廓702相关联的数据(例如,轮廓数据或斑点轮廓数据等等)。该轮廓数据可以包括任何适当的数据,例如,沿着轮廓702的点、表示轮廓702的线或段或曲线等等、或者表示轮廓702的形状的任何其它数据。
如上所述,所描述的技术可以生成斑点轮廓数据(例如,如与斑点202的轮廓702相关联的),同时检测和绕过诸如孔洞204之类的孔洞。即使在有噪图像数据上下文中,这些技术可以提供准确的斑点检测。此外,可以在低计算和存储要求(因此具有低功耗)的情况下,实现这些技术。
例如,本文所讨论的技术可以是基于与斑点202有关的观测。在下面的讨论中,使用垂直的示例性预定方位403,但是,如上所述,可以提供任何适当的预定方位403。例如,斑点202可以包括输入图像中的斑点像素(B)的非空连通集合。此外,如果并且仅仅当p和q具有图像中的相同的水平位置(例如,x1=x2),并且垂直位置p在q的上面(例如,y2>y1),则图像中的像素(px1,y1)可以是确切地在像素(qx2,y2)之上。
基于这些定义,可以观测到的是,存在斑点像素的非空子集(T),使得对于子集T中的每一个像素(px1,y1)来说,在斑点像素B中不存在其它像素(qx2,y2),使得q确切地在p之上。例如,每一个斑点具有顶部像素的子集,使得该子集中的每一个像素位于该斑点中具有相同水平位置的所有像素之上。此外,对于每一个给定的水平位置而言,可以存在至多一个顶部像素。还可以观测到,对于斑点像素B中不处于T里的每一个像素(px3,y3)来说,确切地在子集T中存在一个像素确切地位于像素p之上。例如,斑点中不位于顶部集合里的每一个像素,都确切地具有高于其的一个顶部像素。此外,可以观测到的是,针对子集T中的像素的全部像素都是斑点的外形或轮廓的一部分。
本文所讨论的技术可以使用这些观测结果来确定目标或斑点外形或轮廓,并在不掉入孔洞的情况下穿过该斑点外形或轮廓(例如,穿越真实的斑点轮廓)。此外,如上所述,本文所讨论的技术可以使用斑点包含性检验,来判断像素是否包括在斑点像素B之中。例如,给定输入图像中的任何像素(px5,y5),斑点包含性检验可以判断p是否在该斑点之中,使得斑点包含性检验可以是基于p的值,并且在一些例子中,可以基于p相邻的其它像素的值。例如,不属于斑点的像素可以是背景像素或者如本文所讨论的孔洞像素。本文所讨论的技术还可以使用轮廓穿越技术,来沿着斑点轮廓和/或孔洞轮廓行进,或者穿越这些轮廓。一旦检测到轮廓像素,这种轮廓穿越技术就可以搜索该像素的邻居,以便发现该轮廓中的下一个像素,并重复该技术以穿过和检测该斑点轮廓或者该斑点的轮廓上的孔洞轮廓。
图9示出了根据本公开内容的至少一些实现来排列的、用于执行斑点检测的示例性设备900。如图9中所示,设备900可以包括初始像素选择模块901、斑点像素检验模块902、像素移动模块903、斑点像素重置模块904、位置检测模块905、直线检验模块906、轮廓检测模块907、斑点像素检验模块908和轮廓输出模块909。设备900可以是诸如计算机、膝上型计算机、平板设备、智能电话、数码相机、扫描仪、多功能设备、游戏控制台、可穿戴设备、显示设备等等之类的任何适当形状因素设备。例如,设备900可以执行如本文所讨论的斑点检测。
如所示出的,初始像素选择模块901可以接收输入图像数据911和感兴趣区域数据912。输入图像数据911可以包括表示图像场景的任何适当的图像或成像数据。在一些例子中,输入图像数据911可以是从图像传感器、图像信号处理器、成像管道等等接收的。在一些例子中,输入图像数据911可以包括深度图像数据或彩色图像数据等等。例如,输入图像数据911可以包括针对于输入图像的每一个像素的输入像素值,例如深度值或颜色值(例如,通过多个颜色通道)。此外,输入图像数据911可以包括针对任何类型的输入图像的任意数量的像素的值。例如,输入图像可以包括静态图像、视频序列的图像帧、图形帧、其一部分等等。如上所述,输入图像数据911可以包括与一个或多个斑点和/或一个或多个孔洞相关联的数据。此外,可以根据需要来向设备900的其它模块提供输入图像数据911,以进行如本文所讨论的处理。感兴趣区域数据912可以与输入图像数据911相关联,并且感兴趣区域数据912可以包括用于指示输入图像数据911中的一个或多个感兴趣区域的任何适当数据。例如,感兴趣区域数据912可以指示怀疑有斑点的一个或多个区域。在一些例子中,可以不提供感兴趣区域数据912。
如图9中所示,初始像素选择模块901可以接收输入图像数据911和感兴趣区域数据912,并且初始像素选择模块901可以生成候选初始斑点像素(CP0)913。初始像素选择模块901可以使用适当的技术或技术集来生成候选初始斑点像素913,例如,选择感兴趣区域数据912中的随机像素,选择感兴趣区域数据912的中间像素,基于感兴趣区域数据912来应用采样模式等等。初始像素选择模块901可以向斑点像素检验模块902和/或设备900的存储器(未示出)提供候选初始斑点像素913。
斑点像素检验模块902可以接收候选初始斑点像素913,并且斑点像素检验模块902可以应用斑点包含性检验,以判断候选初始斑点像素913是否在斑点之中(例如,候选初始斑点像素913是否是斑点像素)。该斑点包含性检验可以包括任何适当的检验,例如,绝对深度值检验、相邻像素之间的深度距离检验、方差检验等等。在一些例子中,该斑点包含性检验可以是从设备900的另一个模块作为斑点像素检验927而接收的。例如,斑点像素检验模块902可以接收并应用斑点像素检验927,以判断候选初始斑点像素913是否在斑点之中。如果不在,则斑点像素检验模块902可以返回假(false)值(例如,图9中的F),并且斑点像素检验模块902可以生成失败信号914。可以将失败信号914提供给初始像素选择模块901,响应于失败信号914,初始像素选择模块901可以生成另一个候选初始斑点像素913,直到候选初始斑点像素通过斑点像素检验或者斑点包含性检验为止。例如,当确定候选初始斑点像素913在斑点之中时,斑点像素检验模块902可以返回真(true)值(例如,图9中的T),并且斑点像素检验模块902可以将候选初始斑点像素913作为初始斑点像素(P0)915提供给像素移动模块903和/或设备900的存储器。
像素移动模块903可以接收初始斑点像素915,并且像素移动模块903可以沿着预定方位,在预定方向中移动一个像素等等,以生成候选像素(CP1)916。如上所述,像素移动模块903可以沿着任何预定方位,以任何预定方向进行移动,例如,沿着垂直方位来向上、沿着垂直方位来向下、沿着水平方位来向左、沿着水平方位来向右等等。像素移动模块903可以向斑点像素检验模块908和/或设备900的存储器提供候选像素916。
斑点像素检验模块908可以接收候选像素916,并且斑点像素检验模块902可以应用斑点包含性检验以判断候选像素916是否在斑点之中(例如,候选像素916是否是斑点像素)。该斑点包含性检验可以包括如本文所讨论的任何适当的检验。在一些例子中,该斑点包含性检验可以是从设备900的另一个模块作为斑点像素检验928而接收的。例如,斑点像素检验模块908可以接收并应用斑点像素检验928,以判断候选像素916是否在斑点之中。如果在,则斑点像素检验模块908可以返回真值(例如,图9中的T),斑点像素检验模块908可以向像素移动模块903提供斑点像素信号(BP)917。响应于斑点像素信号917,可以进行另一个像素移动以便向斑点像素检验模块908提供另一个候选像素916,继续进行该操作直到检测到非斑点像素(例如,轮廓像素)为止。例如,当确定候选像素916不在斑点之中时,斑点像素检验模块908可以返回假值(例如,图9中的F),斑点像素检验模块908可以将候选斑点轮廓像素(P1)918提供给轮廓检测模块907和/或设备900的存储器。
轮廓检测模块907可以接收候选斑点轮廓像素(P1)918,并且轮廓检测模块907可以穿越与候选斑点轮廓像素(P1)918相关联的轮廓以检测候选直线像素(CP2)919。轮廓检测模块907可以使用诸如Theo Pavlidi技术等等之类的任何适当的技术或技术集,来穿越该轮廓。轮廓检测模块907可以向直线检验模块906和/或设备900的存储器提供候选直线像素919。
直线检验模块906可以接收候选直线像素919,并且直线检验模块906可以判断候选直线像素919是否沿着预定方位与候选斑点轮廓像素918成一直线。直线检验模块906可以使用如本文所讨论的任何适当检验,来判断这些像素是否是一直线的。例如,如果预定方位是垂直方位,则直线检验模块906可以判断这些像素具有相同的水平像素位置值。如果没有相同的水平像素位置值,则直线检验模块906可以返回假值(例如,图9中的F),直线检验模块906可以生成失败信号920。可以将失败信号920提供给轮廓检测模块907,并且响应于失败信号920,轮廓检测模块907可以生成另一个候选直线像素919(例如,沿着轮廓的另一个像素),直到候选直线像素通过该直线像素检验为止。例如,当确定候选直线像素919与候选斑点轮廓像素(P1)918成一直线时,直线检验模块906可以返回真值(例如,图9中的T),直线检验模块906可以向位置检测模块905和/或设备900的存储器提供直线像素(P2)921。
位置检测模块905可以检测或者确定直线像素921和候选斑点轮廓像素918之间的沿着预定方位的方向。位置检测模块905可以使用任何适当的技术或技术集来检测该方向,例如,比较直线像素921和候选斑点轮廓像素918的像素位置。例如,在像素移动模块903实现向上移动像素的垂直预定方位的例子中,位置检测模块905可以对直线像素921和候选斑点轮廓像素918的垂直像素位置或者值进行比较。位置检测模块905可以检测直线像素921和候选斑点轮廓像素918的方向和/或位置,并且位置检测模块905可以提供适当的信号以进行进一步处理。
例如,如果直线像素921处于由像素移动模块903从候选斑点轮廓像素918实现的方向之中(例如,直线像素921直接位于候选斑点轮廓像素918之上等等),则位置检测模块905可以向斑点像素重置模块904提供孔洞检测到(HD)信号922。斑点像素重置模块904可以接收孔洞检测到信号922,并且斑点像素重置模块904可以将该初始斑点像素重置为直线像素921,并向像素移动模块903提供该重置的初始斑点像素(P0)以进行进一步处理,如上所述。例如,像素移动模块903和斑点像素检验模块908可以确定新的候选斑点轮廓像素918,轮廓检测模块907和直线检验模块906可以确定新的直线像素921,可以对该新的直线像素进行检验,直到检测到斑点轮廓为止(可以将候选斑点轮廓像素918表征为实际斑点轮廓像素918)。在这些实例中,直线像素921随后处于像素移动模块903相对于斑点轮廓像素(例如,先前的候选斑点轮廓像素918)实现的相反方向之中。
例如,当直线像素921处于由像素移动模块903从候选斑点轮廓像素918实现的相反方向之中时(例如,直线像素921直接在候选斑点轮廓像素918之下等等,可以将候选斑点轮廓像素918表征为实际斑点轮廓像素,如上面所讨论的),位置检测模块905可以向轮廓检测模块907提供斑点轮廓检测到(BCD)信号924。轮廓检测模块907可以接收斑点轮廓检测到信号924,并且轮廓检测模块可以继续检测沿着该轮廓的像素(例如,新的候选直线像素919),并向直线检验模块906提供这些像素,直到检测到直线像素为止。在这些实例中,所检测到的直线像素(例如,直线像素921)处于与斑点轮廓像素(例如,先前的候选斑点轮廓像素918)相同的位置。
例如,当直线像素921处于与斑点轮廓像素相同的位置时(例如,直线像素921是候选斑点轮廓像素918),位置检测模块905可以向轮廓输出模块909提供轮廓完成(CC)信号923。输入输出模块909可以接收轮廓完成信号923,轮廓输出模块909可以基于穿过的斑点轮廓(例如,基于斑点轮廓检测到信号924和轮廓完成信号923而穿过的轮廓),来生成斑点轮廓数据930。斑点轮廓数据930可以包括任何适当的轮廓数据,例如,沿着该轮廓的点、表示该轮廓的线或线段或曲线等等、或者表示该轮廓的形状的任何其它数据。
如上所述,在一些例子中,可以基于下面方式来确定斑点轮廓数据930:检测候选斑点轮廓像素和沿着预定方位的直线像素、比较该候选斑点轮廓像素和直线像素的相对方向或位置、以及基于这些比较来指示孔洞轮廓或斑点轮廓。参照设备900所讨论的技术可以应用于输入图像数据911中的任意数量的斑点和/或应用于经由输入图像数据911来提供的任意数量的输入图像。设备900可以提供低存储器占用和计算高效的斑点检测技术。可以将斑点轮廓数据930提供给设备900的任何模块等等,以实现诸如目标检测、目标识别、目标跟踪、计算机视觉等等之类的各种各样的应用。
在一些例子中,本文所讨论的技术可以经由软件来实现。在一些例子中,可以提供参照伪代码(1)所提供的伪代码来实现本文所讨论的技术。
伪代码(1):
1 //接受深度图像
2 start:
3 depth=camera.get();
4 //采样ROI,直到发现有效点
5 do{
6 P0=getRandomPointInROI();
7 }while(test(P0)==false);
8 search_top_point:
9 //向上移动,直到到达深度值中具有较大差异的点
10 P1=P0;
11 do{
12 P1=(P1.x,P1.y–1);
13 }while(test(P1)==true);
14 contour.reset();
15 //尝试检测轮廓
16 detect_contour:
17 P2=P1;
18 do{
19 contour.add(P2);
20 P2=FindNextCountourPoint(P2);
21 }while(P2.x!=P1.x)
22 //检查哪个点是更高的
23 if(P2.y>P1.y)
24 {
25 //返回到向上移动阶段
26 Jump search_top_point;
27 else if(P2.y<P1.y)
28 {
29 //返回到检测轮廓阶段;
30 Jump detect_conotur;
31 }
32 else
33 {
34 //返回所检测到的轮廓
35 return contour;
36 }
37 end
例如,在伪代码(1)中,如经由注释行1所示出的,可以接收或者接受深度图像。例如,处理可以在执行行2处以start命令而开始,在执行行3处,接受深度图像,其中深度图像可以是从照相机模块接收的。虽然参照从照相机模块接收的深度图像来进行示出(如本文所讨论的),但在其它例子中,可以从诸如图像处理模块等等之类的其它模块来接收诸如彩色图像之类的其它图像类型。此外,伪代码(1)提供了使用垂直的预定方位和向上的搜索方向的例子,但是,如上所述,可以使用任何这种预定方位和搜索方向。
如经由注释行1所示出的,可以对感兴趣区域进行采样,直到发现有效点为止。例如,可以对感兴趣区域进行采样,直到确定斑点像素为止。例如,执行行5-7处的处理可以确定感兴趣区域中的随机点(例如,随机像素),并继续这样操作,直到检验确定该随机点处于斑点之中为止(例如,检验提供值为真(true)的结果)。随后,该过程可以从斑点中的该点开始,来确定顶部点(例如,顶部像素),如执行行8处所示。例如,可以基于斑点包含性检验(例如,如注释行9处所示的深度值方差等等)来确定该顶部点。例如,在执行行10-13处,可以对向上方向中的像素(例如,通过y-1来随着y递增)进行检验,以经由执行行13处实现的文本来判断该像素是否处于斑点之中,直到确定一个像素提供值为假(false)的检验结果为止。例如,顶部点可以是候选斑点轮廓像素(P1)。
如经由注释行15所示出的,可以穿越与候选斑点轮廓像素(P1)相关联的轮廓(例如,执行行14可以提供重置,并且执行行16可以检测该轮廓)。例如,执行行17-21可以穿越检测到的轮廓,直到发现水平值与候选斑点轮廓像素(P1)相匹配的像素(例如,直线像素(P2))为止,如执行行21处所示。接着,可以对候选斑点轮廓像素(P1)和直线像素(P2)的相对位置进行比较,如注释行22处所指示的。例如,如果直线像素(P2)更高(如执行行23处所确定的),则该过程可以返回到如注释行25处所示出以及如执行行26处所提供的向上移动阶段,并且处理可以继续在执行行8处进行,其中在执行行8处,可以发现新的候选斑点轮廓像素(P1)。
如果直线像素(P2)不是更高,则处理可以继续在执行行27处,判断候选斑点轮廓像素(P1)是否更高。如果候选斑点轮廓像素(P1)更高(如执行行27处所确定的),则该过程可以返回到注释行29处所示出以及如执行行30处所提供的检测轮廓阶段,并且处理可以继续在执行行16处进行,其中在执行行16处,可以继续对该轮廓进行检测和穿越。
如果候选斑点轮廓像素(P1)不是更高(例如,候选斑点轮廓像素(P1)和直线像素(P2)处于相同的高度,故它们是同一个像素),则处理可以继续,使得可以返回所检测到的轮廓(如注释行34所示出的,以及如执行行35处所提供的),并且处理可以在执行行37处结束。
从而,伪代码(1)可以基于接收的输入图像数据和感兴趣区域数据,来生成斑点轮廓。伪代码(1)可以实现预定的斑点检测检验,或者伪代码(1)还可以接收斑点检测检验来实现(例如,经由如上所述的执行行7和13)。
图10是示出根据本公开内容的至少一些实现来排列的、用于执行斑点检测的示例性过程1000的流程图。过程1000可以包括如图10中所示出的一个或多个操作1001-1004。过程1000可以形成斑点检测处理的至少一部分。通过非限制性示例的方式,过程1000可以形成由如本文讨论的设备900所执行的斑点检测过程的至少一部分。此外,本文将参照图11的系统1100来描述过程1000。
图11是根据本公开内容的至少一些实现来排列的、用于执行斑点检测的示例性系统1100的示意图。如图11中所示,系统1100可以包括一个或多个中央处理单元(CPU)1101、图形处理单元(GPU)1102和存储器存贮1103。此外,如所示出的,CPU 1101可以包括初始斑点选择模块901、斑点像素检验模块902和斑点像素检验模块908(它们可以实现在一起,也可以单独地实现)、像素移动模块903、斑点像素重置模块904、位置检测模块905、直线检验模块906、轮廓检测模块907和轮廓输出模块909。在系统1100的例子中,存储器存贮1103可以存储成像或有关的内容,例如,输入图像、图像数据、视频帧、深度图像数据、颜色数据、感兴趣区域数据、诸如像素位置数据和/或像素值数据之类的像素数据、方位、位置和/或方向数据、斑点像素检验数据、轮廓数据、斑点轮廓数据和/或如本文所讨论的任何其它数据。
如所示出的,在一些例子中,初始斑点选择模块901、斑点像素检验模块902、斑点像素检验模块908、像素移动模块903、斑点像素重置模块904、位置检测模块905、直线检验模块906、轮廓检测模块907和轮廓输出模块909可以经由中央处理单元1101来实现。在其它例子中,初始斑点选择模块901、斑点像素检验模块902、斑点像素检验模块908、像素移动模块903、斑点像素重置模块904、位置检测模块905、直线检验模块906、轮廓检测模块907和轮廓输出模块909中的一个或多个或者部分可以经由图形处理单元1102、图像处理单元、图像处理管道等等来实现。
图形处理单元1102可以包括可以提供如本文所讨论的操作的任意数量和类型的图形处理单元。这些操作可以经由软件或硬件或者其组合来实现。例如,图形处理单元1102可以包括专用于对从存储器存贮1103获得的图像进行操作的电路。中央处理单元1101可以包括可以为系统1100提供控制和其它高级功能和/或提供如本文所讨论的任何操作的任意数量和类型的处理单元或模块。存储器存贮1103可以是诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等等之类的任何类型的存储器。在一个非限制性例子中,存储器存贮1103可以通过高速缓存来实现。在一个实施例中,初始斑点选择模块901、斑点像素检验模块902、斑点像素检验模块908、像素移动模块903、斑点像素重置模块904、位置检测模块905、直线检验模块906、轮廓检测模块907和轮廓输出模块909(或者本文讨论的其它模块)中的一个或多个,可以经由图形处理单元1102的执行单元(EU)来实现。该EU可以包括:例如,可以提供各种各样的可编程逻辑功能的可编程逻辑或电路(如,逻辑内核或内核集)。在一个实施例中,初始斑点选择模块901、斑点像素检验模块902、斑点像素检验模块908、像素移动模块903、斑点像素重置模块904、位置检测模块905、直线检验模块906、轮廓检测模块907和轮廓输出模块909(或者本文讨论的其它模块)中的一个或多个,可以经由诸如固定功能电路等等之类的专用硬件来实现。固定功能电路可以包括专用逻辑或电路,并且可以提供一组可映射到用于固定目的或功能的专用逻辑的固定功能入口点。
返回到图10的讨论,过程1000可以开始于操作1001,“针对输入图像中的斑点,检测候选斑点轮廓像素”,其中,可以检测与输入图像中的斑点相关联的候选斑点轮廓像素。该输入图像可以是如本文所讨论的任何适当的输入图像数据,例如,深度图像数据或彩色图像等等。例如,可以基于与输入图像相关联的感兴趣区域数据来选择候选初始斑点像素,可以检验该候选初始斑点像素是否包含在该斑点之中。如果该候选初始斑点像素通过斑点包含性检验,则可以将该候选初始斑点像素表征为初始斑点像素。此外,可以检验从该初始斑点像素开始的预定方向中沿着预定方位的像素,是否包含在斑点之中。例如,该候选斑点轮廓像素可以是未通过斑点包含性检验的像素。
例如,如经由中央处理单元1101所实现的初始像素选择901可以基于与输入图像相关联的感兴趣区域数据,来选择候选初始斑点像素。此外,如经由中央处理单元1101所实现的斑点像素检验模块902可以检验该候选初始斑点像素是否包含在该斑点之中,如果没有,则可以访问初始像素选择模块901以生成另一个候选初始斑点像素,直到检测到初始斑点像素为止,如本文所讨论的。如经由中央处理单元1101所实现的像素移动模块903可以沿着预定方位,以预定方向进行移动,如经由中央处理单元1101所实现的斑点像素检验模块908可以检验这些像素是否在斑点之中,直到检测到候选斑点轮廓像素为止。
处理可以继续在操作1002处进行,“穿越与候选斑点轮廓像素相关联的轮廓,到达直线像素”,其中,可以穿越与候选斑点轮廓像素相关联的轮廓,到达沿着预定方位与该候选斑点轮廓像素成一直线的直线像素。例如,如经由中央处理单元1101所实现的轮廓检测模块907可以检测轮廓像素,直线检验模块906可以检验该轮廓像素,直到检测到直线像素为止。
处理可以继续在操作1003处进行,“检测从该候选斑点轮廓像素到该直线像素的方向”,其中,可以关于该直线像素沿着预定方位离候选斑点轮廓像素处于第一方向还是第二方向进行判断。例如,该直线像素可以处于与用于检测候选斑点轮廓像素的像素移动相同的方向,或者该直线像素可以处于与用于检测候选斑点轮廓像素的像素移动相反的方向。例如,如经由中央处理单元1101所实现的位置检测模块可以检测该直线像素离候选斑点轮廓像素处于第一方向还是第二方向。
处理可以继续在操作1004处进行,“基于所检测到的方向,继续穿越该轮廓,或者检测第二候选斑点轮廓像素”,其中,当该直线像素离候选斑点轮廓像素处于第一方向时,可以继续穿越该轮廓,或者当该直线像素离候选斑点轮廓像素处于第二方向时,可以检测第二候选斑点轮廓像素。例如,如经由中央处理单元1101所实现的轮廓检测模块907可以继续穿越该轮廓,或者像素移动模块903和斑点像素检验模块908可以检测第二候选斑点轮廓像素,如上面所讨论的。
例如,当该直线像素离候选斑点轮廓像素处于第一方向时(例如,该直线像素处于与像素移动模块903所实现的像素移动相反的方向),可以检测该斑点轮廓,并继续穿越该轮廓直到检测到第二直线像素为止。例如,轮廓检测模块907可以检测轮廓像素,直线检验模块906可以检测第二直线像素。可以将第二直线像素提供给位置检测模块905,其中位置检测模块905可以指示第二直线像素处于与候选斑点轮廓像素相同的像素位置。在这些例子中,对斑点轮廓进行了穿越,并基于从候选斑点轮廓像素穿越到达第二直线像素来生成与该斑点轮廓相关联的斑点轮廓数据。例如,位置检测模块905可以向轮廓输出模块909发送信号,如经由中央处理单元1101所实现的轮廓输出模块909可以生成该轮廓数据。
此外,当直线像素离候选斑点轮廓像素处于第二方向时(例如,该直线像素处于与像素移动模块903所实现的像素移动相同的方向),可以检测到孔洞,以及可以检测第二候选斑点轮廓像素。例如,检测第二候选斑点轮廓像素可以包括:检验从该直线像素开始沿着预定方位处于第二方向中的像素是否包含在斑点中。例如,如中央处理单元1101所实现的斑点像素重置模块904可以将初始斑点像素重置为候选斑点轮廓像素,并且像素移动模块903和斑点像素检验模块908可以对像素进行检验,直到一个像素未通过斑点包含性检验,使得该未通过的像素是第二候选斑点轮廓像素为止。
在这些例子中,处理可以通过下面的方式来继续:穿越与第二候选斑点轮廓像素相关联的第二轮廓,到达沿着预定方位与第二候选斑点轮廓像素成一直线的第二直线像素;检测第二直线像素沿着预定方位离第二候选斑点轮廓像素处于第一方向(例如,第二候选斑点轮廓像素和第二直线像素都在该斑点轮廓上);继续穿越第二轮廓。此外,可以确定沿着预定方位与第二候选斑点轮廓像素成一直线的第三直线像素(例如,第三直线像素和第二候选斑点轮廓像素可以处于相同的像素位置,故可以是同一个像素),并生成与从第二候选斑点轮廓像素开始穿越第二轮廓到达第三直线像素相关联的轮廓数据。
可以针对输入图像中的任意数量的斑点或者针对任意数量的输入图像,串行地或并行地对过程1000重复任意数量的次数。如上所述,过程1000可以提供斑点轮廓,同时检测和避免斑点内的孔洞。例如,即使当输入图像是有噪的等等时,所讨论的技术也可以提供准确的斑点轮廓。
本文所描述的系统的各个部件可以用软件、固件和/或硬件和/或其任意组合来实现。例如,可以至少部分地通过计算的片上系统(SoC)的硬件(比如,可以在诸如智能电话的计算系统中发现的),来提供设备900、系统1100、系统1200或设备1300的各个部件。本领域普通技术人员应当认识到,本文所描述的系统可以包括在相应的附图中没有描述的其它部件。例如,为了清楚起见,本文所讨论的系统可以包括没有进行描述的诸如比特流复用器或解复用器模块等等之类的其它部件。
虽然本文所讨论的示例性处理的实现包括以所描绘的顺序来执行所有示出的操作,但本公开内容在该方面并不受限,在各个示例中,本文的示例性处理的实现可以包括:所示出的操作的仅仅一个子集、与所描绘的顺序不同的顺序来执行的操作或者其它操作。
此外,可以响应于一个或多个计算机程序产品所提供的指令,来进行本文所讨论的操作中的任何一个或多个。这些程序产品可以包括用于提供指令的信号承载介质,其中这些指令在被例如处理器执行时,可以提供本文所描述的功能。可以以任何形式的一个或多个机器可读介质来提供计算机程序产品。因此,例如,包括一个或多个图形处理单元或处理器内核的处理器可以响应于一个或多个机器可读介质向该处理器传送的程序代码和/或指令或指令集,来承担本文的示例性过程的方框中的一个或多个。通常,机器可读介质可以传送具有程序代码和/或指令或指令集的形式的软件,其可以使得本文所描述的设备和/或系统中的任何一个来实现如本文所讨论的设备900、系统1100、系统1200、设备1300或者任何其它模块或部件的至少一部分。
如本文所描述的任何实现中所使用的,术语“模块”指代被配置为提供本文所描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任意组合。软件可以体现为软件包、代码和/或指令集或指令,并且如本文描述的任何实现中所使用的,“硬件”可以单一地或者任意组合地包括:例如,硬件连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储由可编程电路执行的指令的固件。这些模块可以统一地或个别地体现为构成更大型系统的一部分的电路,例如,集成电路(IC)、片上系统(SoC)等等。
图12是根据本公开内容的至少一些实现来排列的、示例性系统1200的示意图。在各种实现中,系统1200可以是媒体系统,但系统1200并不限于该上下文。例如,系统1200可以并入到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板设备、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板设备或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备、照相机(例如,傻瓜相机、长焦相机、数码单反(DSLR)相机)等等中。
在各种实现中,系统1200包括耦合到显示器1220的平台1202。平台1202可以从诸如内容服务设备1230或内容传送设备1240或其它类似的内容源之类的内容设备接收内容。包括一个或多个导航特征的导航控制器1250可以用于与例如平台1202和/或显示器1220进行交互。下面将更详细地描述这些部件中的每一个。
在各种实现中,平台1202可以包括芯片组1205、处理器1210、存储器1212、天线1213、存储装置1214、图形子系统1215、应用1216和/或无线电装置1218的任意组合。芯片组1205可以提供处理器1210、存储器1212、存储装置1214、图形子系统1215、应用1216和/或无线电装置1218之间的相互通信。例如,芯片组1205可以包括能够提供与存储装置1214的相互通信的存贮适配器(没有示出)。
处理器1210可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核处理器或者任何其它微处理器或中央处理单元(CPU)。在各种实现中,处理器1210可以是双核处理器、双核移动处理器等等。
存储器1212可以实现成易失性存储器设备,例如,但不限于:随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储装置1214可以实现成非易失性存储装置,例如,但不限于:磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附加存储装置、闪存、电池供电SDRAM(同步DRAM)和/或网络可访问存储装置。在各种实现中,存储装置1214可以包括:例如,当包含有多个硬件驱动器时,用于提高有价值介质的存储性能增强保护的技术。
图形子系统1215可以执行图像(例如,静止或视频)的处理以进行显示。例如,图形子系统1215可以是图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口来通信地耦合图形子系统1215和显示器1220。例如,该接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任何一种。图形子系统1215可以集成到处理器1210或芯片组1205。在一些实现中,图形子系统1215可以是通信耦合到芯片组1205的单独设备。
可以利用各种硬件架构来实现本文所描述的图形和/或视频处理技术。例如,可以将图形和/或视频功能集成在芯片组中。替代地,也可以使用分离的图形和/或视频处理器。作为另一种实现,这些图形和/或视频功能可以由包括多核处理器的通用处理器来提供。在另外的实施例中,可以将这些功能实现在消费电子设备中。
无线电装置1218可以包括能够使用各种适当的无线通信技术来发送和接收信号的一个或多个无线电装置。这些技术可以涉及一个或多个无线网络上的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在这些网络上进行通信时,无线电装置1218可以根据任何版本的一个或多个适用标准来进行操作。
在各种实现中,显示器1220可以包括任何电视类型监视器或显示器。例如,显示器1220可以包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器1220可以是数字和/或模拟的。在各种实现中,显示器1220可以是全息显示。此外,显示器1220可以是接收视觉投影的透明表面。这些投影可以传送各种形式的信息、图像和/或对象。例如,这些投影可以是移动增强现实(MAR)应用的视觉叠加。在一个或多个软件应用1216的控制之下,平台1202可以在显示器1220上显示用户界面1222。
在各种实现中,内容服务设备1230可以由任何国家、国际和/或独立服务来托管,因此可由平台1202经由例如互联网来访问。内容服务设备1230可以耦合到平台1202和/或显示器1220。平台1202和/或内容服务设备1230可以耦合到网络1260,以传输(例如,发送和/或接收)去往和来自网络1260的媒体信息。内容传送设备1240也可以耦合到平台1202和/或显示器1220。
在各种实现中,内容服务设备1230可以包括有线电视盒、个人计算机、网络、电话、具备互联网能力的设备或能够传送数字信息和/或内容的电器、以及能够经由网络1260或者直接地在内容提供商和平台1202和/或显示器1220之间单向地或双向地传输内容的任何其它类似设备。将理解的是,可以经由网络1260,将去往和来自系统1200中的部件里的任何一个部件和内容提供商的内容进行单向地和/或双向地传输。内容的示例可以包括任何媒体信息,其例如包括视频、音乐、医疗和游戏信息等等。
内容服务设备1230可以接收诸如有线电视节目(其包括媒体信息、数字信息)之类的内容和/或其它内容。内容提供商的示例可以包括任何有线或卫星电视提供商或者无线电或互联网内容提供商。所提供的示例并不意味着以任何方式来限制根据本公开内容的实现。
在各种实现中,平台1202可以从具有一个或多个导航特征的导航控制器1250接收控制信号。例如,可以使用控制器1250的导航特征来与用户界面1222进行交互。在各个实施例中,导航控制器1250可以是指向设备,其可以是允许用户向计算机输入空间(例如,连续和多维)数据的计算机硬件部件(具体而言,人机接口设备)。诸如图形用户接口(GUI)之类的很多系统、以及电视和监视器允许用户使用物理姿态来控制计算机或电视,并向其提供数据。
可以通过在显示器上显示的指针、光标、聚焦环或者其它视觉指示符,在显示器(例如,显示器1220)上复制控制器1250的导航特征的移动。例如,在软件应用1216的控制之下,位于导航控制器1250上的导航特征可以映射到在用户界面1222上显示的虚拟导航特征上。在各个实施例中,控制器1250可以不是单独的部件,而可以集成到平台1202和/或显示器1220中。但是,本公开内容并不限于本文所示出或描述的这些元素,也不限于该上下文之中。
在各种实现中,驱动器(没有示出)可以包括用于在初始启动之后,使用户能够利用按键的触摸来即刻地打开和关闭类似于电视平台1202的技术(例如,当启用时)。程序逻辑可以允许平台1202将内容流传送到媒体适配器或者其它内容服务设备1230或内容传送设备1240(即使当该平台处于“关闭”时)。此外,芯片组1205可以包括针对例如5.1环绕音效和/或高清晰度7.1环绕音效的硬件和/或软件支持。驱动器可以包括针对集成的图形平台的显卡驱动。在各个实施例中,显卡驱动可以包括外围组件互连(PCI)Express显卡。
在各种实现中,可以将系统1200中所示出的部件里的任何一个或多个集成在一起。例如,可以将平台1202和内容服务设备1230集成在一起,或者可以将平台1202和内容传送设备1240集成在一起,或者可以将平台1202、内容服务设备1230和内容传送设备1240集成在一起。在各个实施例中,平台1202和显示器1220可以是集成的单元。例如,可以将显示器1220和内容服务设备1230集成在一起,或者可以将显示器1220和内容传送设备1240集成在一起。这些例子并不意味着对本公开内容进行限制。
在各个实施例中,系统1200可以实现成无线系统、有线系统或二者的组合。当实现成无线系统时,系统1200可以包括适合于通过无线共享介质(例如,一付或多付天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等)进行通信的部件和接口。无线共享介质的示例可以包括无线频谱(如,RF频谱等等)的一部分。当实现成有线系统时,系统1200可以包括适合于在有线通信介质上进行通信的部件和接口,例如,输入/输出(I/O)适配器、用于连接该I/O适配器与相应的有线通信介质的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)底板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台1202可以建立一个或多个逻辑或物理信道以传输信息。该信息可以包括媒体信息和控制信息。媒体信息可以指代:表示意味着用于用户的内容的任何数据。内容的示例可以包括:例如,来自语音会话的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等。来自语音会话的数据可以是例如语音信息、静默时期、背景噪声、舒适噪音、音调等等。控制信息可以指代:表示意味着用于自动系统的命令、指令或控制词的任何数据。例如,控制信息可以用于将媒体信息路由通过系统,或者指示节点以预定方式对媒体信息进行处理。但是,这些实施例并不限于图12中所示出或描述的这些元素,也不限于该上下文之中。
如上所述,系统1200可以以不同的物理样式或形状因素来体现。图13示出了根据本公开内容的至少一些实现来排列的示例性的小形状因素设备1300。在一些例子中,系统800可以经由设备1300来实现。在其它例子中,设备900、1100或者其一部分可以经由设备1300来实现。在各个实施例中,例如,设备1300可以实现成具有无线能力的移动计算设备。例如,移动计算设备可以指代具有处理系统和移动电源或供应(例如,一个或多个电池)的任何设备。
移动计算设备的例子可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板设备、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板设备或智能移动电视)、移动互联网设备(MID)、消息设备、数据通信设备、照相机等等。
此外,移动计算设备的示例还可以包括被布置为由人类进行穿戴的计算机、手腕计算机、手指计算机、环形计算机、眼镜计算机、皮带夹计算机、手臂带计算机、鞋计算机、服装计算机和其它可穿戴计算机。在各个实施例中,例如,移动计算设备可以实现成能够执行计算机应用、以及语音通信和/或数据通信的智能电话。虽然通过示例的方式,利用实现成智能电话的移动计算设备来描述了一些实施例,但应当理解的是,也可以使用其它无线移动计算设备来实现其它实施例。这些实施例并不限于该上下文。
如图13中所示,设备1300可以包括具有前面1301和后面1302的壳体。设备1300包括显示器1304、输入/输出(I/O)设备1306和集成天线1308。此外,设备1300还可以包括导航特征1312。I/O设备1306可以包括用于向移动计算设备输入信息的任何适当的I/O设备。I/O设备1306的例子可以包括字母数字键盘、数字键盘、触摸板、输入键、按键、开关、麦克风、扬声器、语音识别设备和软件等等。此外,还可以通过麦克风(没有示出)的方式来向设备1300输入信息,或者可以通过语音识别设备来使信息数字化。如所示出的,设备1300可以包括摄像头1305(例如,其包括镜头、光圈和成像传感器)和集成到设备1300的后面1302(或者其它地方)的闪光灯1310。在其它例子中,摄像头1305和闪光灯1310可以集成到设备1300的前面1301中,或者在前面和后面均可以提供摄像头。摄像头1305和闪光灯1310可以是照相机模块的部件,用于将原始图像数据处理成输出到显示器1304和/或例如经由天线1308来从设备1300远程地传输的流视频。
可以使用硬件元件、软件单元或二者的组合来实现各个实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例行程序、子例行程序、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任意组合。判断一个实施例是使用硬件元件和/或软件单元来实现,可以根据任意数量的因素而变化,例如,期望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计方案或性能约束。
至少一个实施例的一个或多个方面可以由机器可读介质上存储的表示处理器中的各种逻辑的代表性指令来实现,其中当这些指令被机器读取时,使得该机器构成用于执行本文所描述的技术的逻辑。这些表示(称为IP内核)可以存储在有形的、机器可读介质上,并提供给各个客户或制造工厂,以装载在实际产生该逻辑或处理器的制造机器中。
虽然参照各种实现来描述了本文所阐述的某些特征,但该描述并不旨在以限制性含义进行解释。因此,本文所描述的实现的各种修改,以及对于本领域普通技术人员来说显而易见地与本公开内容有关的其它实现,也认为是落入本公开内容的精神和范围之内。
下面的例子与另外的实施例有关。
在一个或多个第一实施例中,一种用于执行斑点检测的方法,包括:检测与输入图像中的斑点相关联的候选斑点轮廓像素;穿越与所述候选斑点轮廓像素相关联的轮廓,到达沿着预定方位与所述候选斑点轮廓像素成一直线的直线像素;检测所述直线像素沿着所述预定方位离所述候选斑点轮廓像素处于第一方向还是第二方向;以及当所述直线像素离所述候选斑点轮廓像素处于所述第一方向时,继续穿越所述轮廓,或者当所述直线像素离所述候选斑点轮廓像素处于所述第二方向时,检测第二候选斑点轮廓像素。
另外在第一实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述方法还包括:确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置。
另外在第一实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述方法还包括:确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置,并生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
另外在第一实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,并且检测所述第二候选斑点轮廓像素包括:检验从所述直线像素开始沿着所述预定方位的所述第二方向中的像素,是否包含在所述斑点中。
另外在第一实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,检测所述第二候选斑点轮廓像素包括:检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中,并且所述方法还包括:穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素;检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向;以及继续穿越所述第二轮廓。
另外在第一实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,检测所述第二候选斑点轮廓像素包括:检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中,并且所述方法还包括:穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素;检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向;继续穿越所述第二轮廓;确定沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第三直线像素,其中,所述第三直线像素和所述第二候选斑点轮廓像素处于相同的像素位置;以及生成与从所述第二候选斑点轮廓像素开始穿越所述第二轮廓到达所述第三直线像素相关联的轮廓数据。
另外在第一实施例中,所述方法还包括:确定所述斑点内的初始斑点像素;检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素。
另外在第一实施例中,所述方法还包括:确定所述斑点内的初始斑点像素;检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,检验所述像素包括下面中的至少一种:绝对深度值检验或者相邻像素之间的深度距离检验。
另外在第一实施例中,所述方法还包括:确定所述斑点内的初始斑点像素;检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,确定所述斑点内的所述初始斑点像素包括:基于与所述输入图像相关联的感兴趣区域数据来选择候选初始斑点像素,以及检验所述候选初始斑点像素是否包含在所述斑点之中。
另外在第一实施例中,所述输入数据包括深度图像数据或彩色图像数据中的至少一种。
另外在第一实施例中,所述方法还包括:确定所述斑点内的初始斑点像素;检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向;确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置;以及生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
在一个或多个第二实施例中,一种用于执行颜色转换的系统包括:存储器,其被配置为接收输入图像;以及中央处理单元,其耦合到所述存储器,所述中央处理单元用于:检测与所述输入图像中的斑点相关联的候选斑点轮廓像素;穿越与所述候选斑点轮廓像素相关联的轮廓,到达沿着预定方位与所述候选斑点轮廓像素成一直线的直线像素;检测所述直线像素沿着所述预定方位离所述候选斑点轮廓像素处于第一方向还是第二方向;以及当所述直线像素离所述候选斑点轮廓像素处于所述第一方向时,继续穿越所述轮廓,或者当所述直线像素离所述候选斑点轮廓像素处于所述第二方向时,检测第二候选斑点轮廓像素。
另外在第二实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述中央处理单元还用于:确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置。
另外在第二实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述中央处理单元还用于:确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置;以及生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
另外在第二实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,并且用于检测所述第二候选斑点轮廓像素的所述中央处理单元包括:用于检验从所述直线像素开始沿着所述预定方位的所述第二方向中的像素是否包含在所述斑点中的所述中央处理单元。
另外在第二实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,用于检测所述第二候选斑点轮廓像素的所述中央处理单元包括:用于检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中的所述中央处理单元,并且所述中央处理单元还用于:穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素;检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向;继续穿越所述第二轮廓,以确定沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第三直线像素,其中,所述第三直线像素和所述第二候选斑点轮廓像素处于相同的像素位置;以及生成与从所述第二候选斑点轮廓像素开始穿越所述第二轮廓到达所述第三直线像素相关联的轮廓数据。
另外在第二实施例中,所述中央处理单元还用于:确定所述斑点内的初始斑点像素;以及检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素。
另外在第二实施例中,所述中央处理单元还用于:确定所述斑点内的初始斑点像素;以及检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,用于检验所述像素的所述中央处理单元包括:用于应用绝对深度值检验或者相邻像素之间的深度距离检验中的至少一种的所述中央处理单元。
另外在第二实施例中,所述中央处理单元还用于:确定所述斑点内的初始斑点像素;以及检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,用于确定所述斑点内的所述初始斑点像素的所述中央处理单元包括:用于基于与所述输入图像相关联的感兴趣区域数据来选择候选初始斑点像素,以及检验所述候选初始斑点像素是否包含在所述斑点之中的所述中央处理单元。
另外在第二实施例中,所述输入数据包括深度图像数据或彩色图像数据中的至少一种。
另外在第二实施例中,所述中央处理单元还用于:确定所述斑点内的初始斑点像素;检验从所述初始斑点像素开始,在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向;确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置;以及生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
在一个或多个第三实施例中,一种用于执行颜色转换的系统,包括:用于检测与输入图像中的斑点相关联的候选斑点轮廓像素的单元;用于穿越与所述候选斑点轮廓像素相关联的轮廓,到达沿着预定方位与所述候选斑点轮廓像素成一直线的直线像素的单元;用于检测所述直线像素沿着所述预定方位离所述候选斑点轮廓像素处于第一方向还是第二方向的单元;以及用于当所述直线像素离所述候选斑点轮廓像素处于所述第一方向时,继续穿越所述轮廓,或者当所述直线像素离所述候选斑点轮廓像素处于所述第二方向时,检测第二候选斑点轮廓像素的单元。
另外在第三实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述系统还包括:用于确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素的单元,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置。
另外在第三实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述系统还包括:用于确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素的单元,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置,以及用于生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据的单元。
另外在第三实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,并且用于检测所述第二候选斑点轮廓像素的单元包括:用于检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中的单元。
另外在第三实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,用于检测所述第二候选斑点轮廓像素的单元包括:用于检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中的单元,并且所述系统还包括:用于穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素的单元;用于检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向的单元;以及用于继续穿越所述第二轮廓的单元。
另外在第三实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,用于检测所述第二候选斑点轮廓像素的单元包括:用于检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中的单元,并且所述系统还包括:用于穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素的单元;用于检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向的单元;用于继续穿越所述第二轮廓的单元;用于确定沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第三直线像素的单元,其中,所述第三直线像素和所述第二候选斑点轮廓像素处于相同的像素位置;以及用于生成与从所述第二候选斑点轮廓像素开始穿越所述第二轮廓到达所述第三直线像素相关联的轮廓数据的单元。
另外在第三实施例中,所述系统还包括:用于确定所述斑点内的初始斑点像素的单元;用于检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素的单元。
另外在第三实施例中,所述系统还包括:用于确定所述斑点内的初始斑点像素的单元;用于检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素的单元,其中,用于检验所述像素的单元包括用于检验下面中的至少一种的单元:绝对深度值检验或者相邻像素之间的深度距离检验。
另外在第三实施例中,所述系统还包括:用于确定所述斑点内的初始斑点像素的单元;用于检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素的单元,其中,用于确定所述斑点内的所述初始斑点像素的单元包括:用于基于与所述输入图像相关联的感兴趣区域数据来选择候选初始斑点像素的单元,以及用于检验所述候选初始斑点像素是否包含在所述斑点之中的单元。
另外在第三实施例中,所述输入数据包括深度图像数据或彩色图像数据中的至少一种。
另外在第三实施例中,所述系统还包括:用于确定所述斑点内的初始斑点像素的单元;用于检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素的单元,其中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向;用于确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素的单元,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置;以及用于生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据的单元。
在一个或多个第四实施例中,至少一种机器可读介质包括多个指令,其中响应于所述多个指令在设备上被执行,使得所述设备通过下面方式来执行斑点检测:检测与输入图像中的斑点相关联的候选斑点轮廓像素;穿越与所述候选斑点轮廓像素相关联的轮廓,到达沿着预定方位与所述候选斑点轮廓像素成一直线的直线像素;检测所述直线像素沿着所述预定方位离所述候选斑点轮廓像素处于第一方向还是第二方向;当所述直线像素离所述候选斑点轮廓像素处于所述第一方向时,继续穿越所述轮廓,或者当所述直线像素离所述候选斑点轮廓像素处于所述第二方向时,检测第二候选斑点轮廓像素。
另外在第四实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述机器可读介质还包括指令,其中响应于所述指令在所述设备上被执行,使得所述设备通过下面的方式来执行斑点检测:确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置。
另外在第四实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,并且所述机器可读介质还包括指令,其中响应于所述指令在所述设备上被执行,使得所述设备通过下面的方式来执行斑点检测:确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置,并生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
另外在第四实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,并且检测所述第二候选斑点轮廓像素包括:检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中。
另外在第四实施例中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,检测所述第二候选斑点轮廓像素包括:检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中,并且所述机器可读介质还包括指令,其中响应于所述指令在所述设备上被执行,使得所述设备通过下面的方式来执行斑点检测:穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素;检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向;继续穿越所述第二轮廓,确定沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第三直线像素,其中,所述第三直线像素和所述第二候选斑点轮廓像素处于相同的像素位置;以及生成与从所述第二候选斑点轮廓像素开始穿越所述第二轮廓到达所述第三直线像素相关联的轮廓数据。
另外在第四实施例中,所述机器可读介质还包括指令,其中响应于所述指令在所述设备上被执行,使得所述设备通过下面的方式来执行斑点检测:确定所述斑点内的初始斑点像素;检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素。
另外在第四实施例中,所述机器可读介质还包括指令,其中响应于所述指令在所述设备上被执行,使得所述设备通过下面的方式来执行斑点检测:确定所述斑点内的初始斑点像素;检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,确定所述斑点内的所述初始斑点像素包括:基于与所述输入图像相关联的感兴趣区域数据来选择候选初始斑点像素,以及检验所述候选初始斑点像素是否包含在所述斑点之中。
在一个或多个第五实施例中,至少一种机器可读介质可以包括多个指令,响应于这些指令在计算设备上被执行,使得该计算设备执行根据上面的实施例中的任何一个实施例所述的方法。
在一个或多个第六实施例中,一种装置可以包括用于执行根据上面的实施例中的任何一个实施例所述的方法的单元。
应当认识到,实施例并不限于所描述的实施例,在不脱离所附权利要求书的范围的基础上,通过对所公开内容进行修改和改变亦可实现本发明。例如,上面的实施例可以包括特征的特定组合。但是,上面的实施例在该方面并不受限,因此在各种实现中,上面的实施例可以包括:承担这些特征的仅仅一个子集,承担不同顺序的这些特征,承担这些特征的不同组合,和/或承担与所列出的那些特征不同的其它特征。因此应参照所附权利要求书以及与授权的权利要求等同的全部范围,来确定这些实施例的范围。
Claims (23)
1.一种用于执行斑点检测的方法,包括:
检测与输入图像中的斑点相关联的候选斑点轮廓像素;
穿越与所述候选斑点轮廓像素相关联的轮廓,到达沿着预定方位与所述候选斑点轮廓像素成一直线的直线像素;
检测所述直线像素沿着所述预定方位离所述候选斑点轮廓像素处于第一方向还是第二方向;以及
当所述直线像素离所述候选斑点轮廓像素处于所述第一方向时,继续穿越所述轮廓,或者当所述直线像素离所述候选斑点轮廓像素处于所述第二方向时,检测第二候选斑点轮廓像素。
2.根据权利要求1所述的方法,其中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,所述方法还包括:
确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置。
3.根据权利要求2所述的方法,还包括:
生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
4.根据权利要求1所述的方法,其中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,并且其中,检测所述第二候选斑点轮廓像素包括:检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中。
5.根据权利要求4所述的方法,还包括:
穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素;
检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向;以及
继续穿越所述第二轮廓。
6.根据权利要求5所述的方法,还包括:
确定沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第三直线像素,其中,所述第三直线像素和所述第二候选斑点轮廓像素处于相同的像素位置;以及
生成与从所述第二候选斑点轮廓像素开始穿越所述第二轮廓到达所述第三直线像素相关联的轮廓数据。
7.根据权利要求1所述的方法,还包括:
确定所述斑点内的初始斑点像素;以及
检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素。
8.根据权利要求7所述的方法,其中,检验所述像素包括下面中的至少一种:绝对深度值检验或者相邻像素之间的深度距离检验。
9.根据权利要求7所述的方法,其中,确定所述斑点内的所述初始斑点像素包括:基于与所述输入图像相关联的感兴趣区域数据来选择候选初始斑点像素,以及检验所述候选初始斑点像素是否包含在所述斑点之中。
10.根据权利要求1所述的方法,其中,所述输入图像包括深度图像数据或彩色图像数据中的至少一种。
11.根据权利要求1所述的方法,还包括:
确定所述斑点内的初始斑点像素;
检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向;
确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置;以及
生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
12.一种用于执行颜色转换的系统,包括:
存储器,其被配置为接收输入图像;以及
中央处理单元,其耦合到所述存储器,所述中央处理单元用于:
检测与所述输入图像中的斑点相关联的候选斑点轮廓像素;
穿越与所述候选斑点轮廓像素相关联的轮廓,到达沿着预定方位与所述候选斑点轮廓像素成一直线的直线像素;
检测所述直线像素沿着所述预定方位离所述候选斑点轮廓像素处于第一方向还是第二方向;
以及当所述直线像素离所述候选斑点轮廓像素处于所述第一方向时,继续穿越所述轮廓,或者当所述直线像素离所述候选斑点轮廓像素处于所述第二方向时,检测第二候选斑点轮廓像素。
13.根据权利要求12所述的系统,其中,所述直线像素离所述候选斑点轮廓像素处于所述第一方向,所述中央处理单元还用于:确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置。
14.根据权利要求13所述的系统,其中,所述中央处理单元还用于:
生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
15.根据权利要求12所述的系统,其中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向,并且其中,用于检测所述第二候选斑点轮廓像素的所述中央处理单元包括:用于检验从所述直线像素开始沿着所述预定方位处于所述第二方向中的像素是否包含在所述斑点中的所述中央处理单元。
16.根据权利要求15所述的系统,所述中央处理单元还用于:
穿越与所述第二候选斑点轮廓像素相关联的第二轮廓,到达沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第二直线像素;
检测所述第二直线像素沿着所述预定方位离所述第二候选斑点轮廓像素处于所述第一方向;
继续穿越所述第二轮廓,以确定沿着所述预定方位与所述第二候选斑点轮廓像素成一直线的第三直线像素,其中,所述第三直线像素和所述第二候选斑点轮廓像素处于相同的像素位置;以及
生成与从所述第二候选斑点轮廓像素开始穿越所述第二轮廓到达所述第三直线像素相关联的轮廓数据。
17.根据权利要求12所述的系统,所述中央处理单元还用于:
确定所述斑点内的初始斑点像素;以及
检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素。
18.根据权利要求17所述的系统,其中,用于检验所述像素的所述中央处理单元包括:用于应用绝对深度值检验或者相邻像素之间的深度距离检验中的至少一种的所述中央处理单元。
19.根据权利要求17所述的系统,其中,用于确定所述斑点内的所述初始斑点像素的所述中央处理单元包括:用于基于与所述输入图像相关联的感兴趣区域数据来选择候选初始斑点像素,以及检验所述候选初始斑点像素是否包含在所述斑点之中的所述中央处理单元。
20.根据权利要求12所述的系统,其中,所述输入图像包括深度图像数据或彩色图像数据中的至少一种。
21.根据权利要求12所述的系统,其中,所述中央处理单元还用于:
确定所述斑点内的初始斑点像素;
检验从所述初始斑点像素开始在所述第二方向中沿着所述预定方位的像素是否包含在所述斑点中,以检测所述候选斑点轮廓像素,其中,所述直线像素离所述候选斑点轮廓像素处于所述第二方向;
确定沿着所述预定方位与所述候选斑点轮廓像素成一直线的第二直线像素,其中,所述第二直线像素和所述候选斑点轮廓像素处于相同的像素位置;以及
生成与从所述候选斑点轮廓像素开始穿越所述轮廓到达所述第二直线像素相关联的轮廓数据。
22.一种机器可读介质,包括:
多个指令,其中响应于所述多个指令在计算设备上被执行,使得所述计算设备执行根据权利要求1-11中的任一项所述的方法。
23.一种装置,包括:
用于执行根据权利要求1-11中的任一项所述的方法的单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/661,248 | 2015-03-18 | ||
US14/661,248 US9501830B2 (en) | 2015-03-18 | 2015-03-18 | Blob detection in noisy images |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105989602A CN105989602A (zh) | 2016-10-05 |
CN105989602B true CN105989602B (zh) | 2019-04-23 |
Family
ID=56925350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610091101.3A Active CN105989602B (zh) | 2015-03-18 | 2016-02-18 | 有噪图像中的斑点检测 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9501830B2 (zh) |
CN (1) | CN105989602B (zh) |
TW (1) | TWI597687B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11160688B2 (en) * | 2016-11-10 | 2021-11-02 | Samsung Electronics Co., Ltd. | Visual aid display device and method of operating the same |
US10062187B1 (en) * | 2017-06-28 | 2018-08-28 | Macau University Of Science And Technology | Systems and methods for reducing computer resources consumption to reconstruct shape of multi-object image |
CN109242782B (zh) * | 2017-07-11 | 2022-09-09 | 深圳市道通智能航空技术股份有限公司 | 噪点处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5943141A (en) * | 1996-11-29 | 1999-08-24 | Mita Industrial Co., Ltd. | Image reading apparatus having shading correction means using a reference data processing circuit |
CN101944239A (zh) * | 2009-07-08 | 2011-01-12 | 富士通株式会社 | 三维模型分割方法、装置以及包含该装置的图像处理系统 |
CN102568003A (zh) * | 2011-12-21 | 2012-07-11 | 北京航空航天大学深圳研究院 | 一种基于视频结构化描述的多摄像机目标跟踪方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987172A (en) * | 1995-12-06 | 1999-11-16 | Cognex Corp. | Edge peak contour tracker |
US8437502B1 (en) * | 2004-09-25 | 2013-05-07 | Cognex Technology And Investment Corporation | General pose refinement and tracking tool |
GB0608069D0 (en) * | 2006-04-24 | 2006-05-31 | Pandora Int Ltd | Image manipulation method and apparatus |
DE102009006636B4 (de) * | 2008-12-30 | 2016-02-18 | Siemens Aktiengesellschaft | Verfahren zur Ermittlung einer 2D-Kontur einer in 3D-Bilddaten abgebildeten Gefäßstruktur |
JP5800468B2 (ja) * | 2010-05-11 | 2015-10-28 | オリンパス株式会社 | 画像処理装置、画像処理方法、および画像処理プログラム |
JP2011134343A (ja) * | 2011-02-24 | 2011-07-07 | Nintendo Co Ltd | 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法 |
US8669523B2 (en) * | 2011-05-25 | 2014-03-11 | Kla-Tencor Corporation | Contour-based defect detection using an inspection apparatus |
ES2627108T3 (es) * | 2012-04-03 | 2017-07-26 | Intrasense | Método de remapeo de una ROI conservando la topología entre imágenes médicas |
-
2015
- 2015-03-18 US US14/661,248 patent/US9501830B2/en active Active
-
2016
- 2016-02-15 TW TW105104320A patent/TWI597687B/zh not_active IP Right Cessation
- 2016-02-18 CN CN201610091101.3A patent/CN105989602B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5943141A (en) * | 1996-11-29 | 1999-08-24 | Mita Industrial Co., Ltd. | Image reading apparatus having shading correction means using a reference data processing circuit |
CN101944239A (zh) * | 2009-07-08 | 2011-01-12 | 富士通株式会社 | 三维模型分割方法、装置以及包含该装置的图像处理系统 |
CN102568003A (zh) * | 2011-12-21 | 2012-07-11 | 北京航空航天大学深圳研究院 | 一种基于视频结构化描述的多摄像机目标跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
US9501830B2 (en) | 2016-11-22 |
CN105989602A (zh) | 2016-10-05 |
TWI597687B (zh) | 2017-09-01 |
TW201702986A (zh) | 2017-01-16 |
US20160275668A1 (en) | 2016-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11138796B2 (en) | Systems and methods for contextually augmented video creation and sharing | |
CN108229277B (zh) | 手势识别、手势控制及多层神经网络训练方法、装置及电子设备 | |
CN111079576B (zh) | 活体检测方法、装置、设备及存储介质 | |
CN104573640B (zh) | 数据处理系统及其生成设备、面部检测方法 | |
CN105659287B (zh) | 图像处理装置、图像处理方法和成像系统 | |
CN105659200B (zh) | 用于显示图形用户界面的方法、设备和系统 | |
CN107113415B (zh) | 用于多技术深度图获取和融合的方法和设备 | |
CN107925755A (zh) | 针对图像处理进行平面表面检测的方法和系统 | |
CN109829456A (zh) | 图像识别方法、装置及终端 | |
US9965861B2 (en) | Method and system of feature matching for multiple images | |
CN106255990B (zh) | 用于相机阵列的图像重对焦 | |
CN103988503B (zh) | 使用预捕获图像运动的场景分割 | |
CN108965982A (zh) | 视频录制方法、装置、电子设备和可读存储介质 | |
US20170154204A1 (en) | Method and system of curved object recognition using image matching for image processing | |
CN108256549B (zh) | 图像分类方法、装置及终端 | |
CN104184928B (zh) | 信息处理设备、信息处理方法 | |
CN109660782A (zh) | 减少立体深度传感器成像中的纹理化ir图案 | |
CN106165386A (zh) | 用于照片上传和选择的自动化技术 | |
CN107257980A (zh) | 视频中的局部改变检测 | |
TWI617996B (zh) | 使用方向性濾波之物件檢測技術 | |
CN106464800B (zh) | 用于成像设备的自动防眩光曝光的方法、系统、机器可读介质及计算设备 | |
KR20160070780A (ko) | 재포커싱가능 이미지들 | |
CN105989602B (zh) | 有噪图像中的斑点检测 | |
JP2018503066A (ja) | 画像ベースの深さ検知システムの精度測定 | |
CN103533228B (zh) | 用于从多个图像产生完美拍摄成像的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |