Jaya Shankar MathWorks
获取图像并进行图像分析发现小物件,算来,并通过颜色区分。
你好,欢迎。在本视频中,我们将使用图像采集工具箱™将图像捕获到MATLAB中®。然后,我们将使用图像处理工具箱™执行图像分析和其他操作。例如,我设置了我的相机来捕捉不同颜色糖果的图像。我们将确定图片中糖果的总数量,并计算一定颜色的糖果数量。
在这个例子中,我将执行各种图像处理算法,诸如阈值,形态学运算,并且所获取的图像中的颜色分割。第一步是将我的相机连接到MATLAB。要查看是否MATLAB承认,我的相机是可用的,我用的是imaqhwinfo命令,让我的计算机上可用的硬件适配器和专用设备的列表。我目前已连接的摄像机是通过WINVIDEO适配器访问。所以我用imaqhwinfo命令来获取其设备ID。
有了这些信息,我可以使用视频输入命令来创建一个图像采集对象,可以从我的相机获取视频的一个实例。使用这个视频输入对象,我可以弹出一个预览窗口为我拍摄的视频。然后我用getsnapshot命令捕获一个图像帧从我获得的视频。余可使用内部的MATLAB命令imshow显示该图像帧。让我在这里停靠此图像帧。
让我们首先使用阈值识别图像中的所有对象。因此,我将图像的R、G和B组合分开,分别使用graythresh命令为它们计算一个阈值。然后使用im2bw命令分别对这些组件进行阈值,然后将它们组合在一起,得到具有明确标识对象的二进制图像。
为了去除图像中的任何文物,我用形态学操作,如imfill删除任何漏洞和imclearborder删除趴在边界任何外来物体。现在是很容易清楚算在我的形象对象的数量。我用bwlabel命令来唯一地标记每个对象和计算图像中的对象的总数。
为了稳健地选择某种颜色的糖果,我们需要考虑到由于不均匀的光照条件和相机噪声等问题而导致的物体颜色值的变化。因此,我需要构造一个图像,用每个糖果的中位数颜色替换实际的RGB值。
为此,我使用逻辑索引只获得我想要的像素,然后计算它们的中位数。例如,我可以在逻辑上索引到图像标签矩阵,然后只提取标签为1的像素。我举个例子。
然后我可以计算属于该分割区域的提取的像素的中值。所以在这个for循环中,我就此计算出的中值的每个标签的所有三个彩色平面。并在循环结束,我重新组合颜色分量知道每个糖果中色素值。
使用图像处理工具箱中的impixelinfo命令,我可以看到刚刚为每个糖果计算的R、G和B的中值。我现在想要选择想要的颜色和计数糖果的数量为特定的颜色。因为我已经有了每个标记区域的中值颜色,所以我需要简单地找到具有与所选颜色相近的中值颜色的区域。
对于基于颜色的选择,最好是用Lab色彩空间的工作,因为它分离出来的颜色信息发光信息。在该空间中的颜色值之间的欧几里得距离为颜色相似性比在RGB颜色空间中的更有效的措施。所以我用makecform和applycform评论转换我的形象,并从RGB到LAB空间所选择的颜色。
由此,我能保持A和B组分,因为我不真的在这里不需要任何发光信息。为了找到区域具有相同的颜色,我首先计算使用与A和B组分的hypot将命令的颜色值之间的欧几里得距离。然后我用一个合适的阈值保持值只选择那些位于靠近被选择的颜色区域。然后我可以使用bwlabel命令获取帐户所选择的区域。
这个演示演示了如何将图像处理工具箱和图像采集工具箱结合起来,对实时图像进行图像分析操作。进一步来看这个示例,您可以使用guide添加一个GUI,甚至可以使用MATLAB编译器™构建一个独立的可执行文件。更多图像采集和处理演示,请访问我们的网站上的产品页面。谢谢你!
你也可以从以下列表中选择一个网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
本网站使用cookies来改善您的用户体验,个性化内容和广告,并分析网站流量。继续使用本网站,即表示您同意我们使用cookies。请参阅我们的隐私政策以了解更多有关cookies和如何更改您的设置。