介绍MATLAB的图像处理工具箱
这次会议是一个介绍MATLAB®,数值计算的高级语言和交互式环境,可视化和编程。
MATLAB包含内置数学函数解决工程和科学问题的基础,和一个交互式的环境适合迭代开发,设计,和解决问题。一个图像处理的例子是用来说明如何开始使用MATLAB。
亮点包括:
- 交互式地导入和可视化图像数据从文件和网络摄像头
- 迭代开发图像处理算法
- 用脚本自动化你的工作
- 与他人分享你的结果通过自动创建报告
记录:2014年3月26日
你好,欢迎来到介绍MATLAB。我的名字叫安迪,我是MathWorks产品营销经理。在这次会议中,我们会给你介绍MATLAB通过使用一个图像处理的例子。但是在我们开始之前,让我们来谈谈MATLAB一点。
MATLAB本质上是一种高级语言。但更重要的是,这也是一个完整的交互式开发环境。这允许您做脚本的能力,数值计算,可视化像你看到在右边,用情节和很多不同类型的图形工具。同时,它允许您做算法开发和编程,最后应用程序部署。
让我们退一步,谈论一个典型的技术计算工作流。传统上,你会与访问数据。这可以以文件的形式,也许来自第三方软件输出,甚至硬件。一旦你获得数据,你就会进入我们所说的探索和发现阶段。这就是你要做大量的算法开发和做事情像图形,发现趋势,开发您的应用程序。最后,要分享它。你要分享你的想法。你要分享你的算法与同事的形式报告和文档,或者输出的形式,如C文件,库,可以被其他第三方应用程序。
所以,虽然我已经证明这是一个线性路径,事实上,这是一个迭代的路径。你通常这些不同阶段之间的移动,增加你的数据集的大小,做更多的开发、改进算法和应用,分享结果,得到反馈,然后再做更多的改进。我将向你们展示在这个会话,MATLAB给了自己一个非常好的这种工作流。
今天演示的目的是建立一个入侵检测系统。使用MATLAB的图像处理工具箱我们要探索图像来创建和分享这个应用程序。我们要与静态图像工作第一。我们将发布报告帮助共享算法。最后,我们要使用视频直播。
让我给你一个预览的我们将建筑。如果你看看这里,这实际上是运行的应用程序和一个漂亮的用户界面。我们已经运行的算法。这是我们的参考图像没有入侵者。右边,你可以看到我们的入侵者以红色突出显示。最后,我们要看到我们一起把这整个应用程序。
这里我们在MATLAB。,对于你们中那些是新的环境,我要在我们遇到的不同的特性在整个演示。让我们继续开始。在命令窗口中,这是一个很好的地方,你就可以开始与环境互动。例如,您可以开始分配一些变量,如= 3,b = 5。我们可以创建另一个变量c和设置等于乘以b。所以没有答案很复杂,15。
但我想指出的是,MATLAB在工作区中存储所有这些变量。如果我双击打开,你会看到我创建的变量,b = 3,等等。这是,您可以在其中存储;你可以工作和执行操作。但更重要的是,如果我双击这个,你会看到一些有趣的事情。MATLAB基本上把所有的变量,仿佛他们矩阵或二维数组。因此,在这种情况下,变量是一个值3,但它是一个一个接一个的矩阵。这是非常有益的,当你做事情像线性代数,或在我们的例子中,图像处理,每一个图像本质上是一个矩阵。
让我们做更多的数学只是向你展示我们能做什么。我创建这个小快捷按钮来清除环境在工作区中。顺便说一下,你可以创建快捷方式的喜欢。你可以在这里创建一个标签。您可以输入任何常见的输入命令,你可以输入。这只是帮助你与你的生产力的速度。
现在我要创建一个矩阵。让我们继续,称之为矩阵1。我们将创建一个子矩阵。所以为了一次,我要做一些自动完成。好,现在如果我点击返回,你将会看到这是一个简单的子矩阵。你会看到它的1和0的中心。我们可以情节。如果我们workspace-let我继续往下看,在打开这个。
所以我没有告诉你之前,但是现在,我们这里有一些更有趣的数据,你可以右击。你可以看到我可以打开更多的变量,如标准差,意思是,中位数。这个矩阵变得更大、更复杂,你可以提供一些有趣的属性显示在工作区中。
但是现在我们想把这个。如果我继续强调去情节选项卡,您将看到所有相关情节与这相关的数据类型。在我们的例子中,我们要把这当作一个图像。所以我可以用imshow。这相当于一个printf的影像世界。你仅仅是窥视或观察值。但是我想使用图像工具,或imtool,因为这是一个如此小的形象。如您所见,这张图片让我放大的工具。
所以我在这里缩放图像。你会看到什么很有趣。但是你可以做这样的事情,与图像工具,如测量。所以在这里你可以看到我可以测量这个黑色小广场。这是大约1.39像素。我可以玩的对比。我可以作物图像。但什么也interesting-let我继续对大小这一点我可以点击这个按钮检查像素值。如果我点击这里给你们,这是我的矩阵。所有的不同的元素1是白色的。 And the center is 0, which is black. So that's essentially a picture. It's not a very interesting one. But nonetheless, my little matrix is a picture.
所以我们走。现在我要执行一些操作。记住,我提到MATLAB对待一切,仿佛这是一个二维数组或矩阵。你可以操作整个数组。这里我们要继续执行一些逻辑操作。例如,我要创建另一个第二。我要设置这个等于一切矩阵1,比方说,小于1。
所以我要做的是,从本质上讲,我建立了逆。现在,一切都是1现在是0。现在一切都是0 1。我可以把这个打印出来。我会通过我的历史。我要打印矩阵2。和在这里的继续和变焦是我的形象。你可以看到它的逆。现在中心是白色的。是1。 All the surrounding pixels are black, because they're 0.
现在你可以看到我已经与MATLAB交互。我输入的命令。虽然这是伟大的开始,这可以有点费力。随着你的命令越来越强烈的和你想要做更多的交互,您可能想要搬到一个叫做脚本。让我告诉你如何获得的一种方式,或如何过渡。
如果我们去命令历史记录,你可以看到我的一切在命令窗口输入MATLAB因为我已经打开了这个会议我这里有了。你可以从本质上说,好吧,我想抓住这。我握住我的控制键,开始我想强调所有的命令。让我们看看,我创建了一些矩阵,称为imtool。我可以在这里点击右键。我可以评估部分。所以我可以重新运行历史上一切。或者我可以点击右键,创建脚本。
所以这个编辑器窗口打开。在这里你可以看到我所有的我输入的命令。我可以保存。例如,我可以保存并创建一个测试脚本。然后所有MATLAB脚本标记。m。这是我的脚本。我可以清除工作区。我可以重新运行脚本通过编辑选项卡上面,打跑了。实际上,这是我所有的变量。他们都被填充,创建我的矩阵,也发射了imtool。 And here's my little image where I can actually zoom in and see.
这是一个很好的方式去一个环境处理脚本,你可以迭代。你可以用它调试。你可以保存并使自己更富有成效。所以命令窗口是伟大的。但当你想要变得更加自动化和保存这些东西和迭代,我建议向一个脚本。
让我们继续,继续图像处理的例子。让我们继续和清理环境。现在与我们的图像处理的例子,如果你看左边,我还没有显示这个给你。但这是我们的浏览器文件夹,文件浏览器。所以在这里我们可以看到不同的文件。我们可以导航到任何我们想要的文件系统中的文件夹。这是我们的两个测试图像。让我们继续,现在这些导入到工作区中。
如果我们双击测试图像,我们会发现导入向导。这里是JPEG图像。那是相当简单。它所做的就是告诉我的名字。告诉我,这是一个266 - 484年-模糊图像。三层。为什么是三层,它说有一个R, G, b的红色,蓝色,和绿色层。我们会继续和这个导入到工作区,点击Finish。但是我应该指出这个导入向导将定制本身根据您的数据类型。例如,如果您有表格数据或另一种类型的数据格式,您将看到选项将帮助您控制和如何被导入到工作区中。 So just remember the import wizard will customize based on your data type.
让我们继续并单击Finish。然后你会看到我们有我们的测试图像填充,测试图像1。让我们继续和进口在第二图像。和在这里。我们会点击Finish。这里我们有两个图像。让我们继续和预览他们以确保他们得到正确导入到环境。如果我们点击其中一个,去情节选项卡,您将看到任何相关的情节将会提升到表面。我们可以做一个简单的imshow。再一次,这就像printf的等效。 We're just looking at that variable.
看,没有什么有趣的。这是我的办公室。相对干净,正如你所看到的,今天。但你看到没有什么兴趣。这里没有入侵者。所以一切都看起来不错。但如果我们去测试图像2,然后使用图像工具吧。我想告诉你一些有趣的事情。这是我们办公室的照片。但有人在里面。 So we have someone here.
这是很有趣的。使用图像工具,我们可以开始做一些预处理或开始分析数据。例如,我们可以在这里点击这个小统治者。我可以测量这个人有多高?哦,它是关于150像素高。这可能是重要的。因为我们可能要做一些length-based过滤,可能确保我们检测一个人,不可能有人的宠物。这就是你可以做一些快速的测量。让我们继续和删除这段距离的工具。
但是你也可以做诸如作物图像。你可以回到这个检查像素值。在这里,我们看到像素区域。这个时间让我继续放大,这样你就可以看到它好了有点更有趣。当我移动这个小观察窗观察区域像素,这是红色,蓝色,绿色强度水平。所以这个红色的包,你可以看到的值被要求做颜色。如果你看黑色的在这里,你可以看到一切都接近于零,本质上。如果你走近在墙上,这都是非常高的强度,200点附近,256年,最高的,基本上是纯白色的这张照片。所以真正伟大的信息——这很重要,因为你可能想做的颜色处理后,所以只是另一种分析您的数据,看看也许你可能想要做什么类型的处理。
但在我们的例子中,这是一个更简单。如果我回去拿我的其他image-let继续并关闭这个像素区域。我要抓住我的。所以在我们的例子中,我们正在试图做的是试图找出当我们这里有入侵者。如果你看看这两个图片,你可以看到有很多的一致性。所有的办公室都是恒定的,除了人的一件事是新的。
所以,从本质上讲,一背景旋律——是一个前景。这里,这个人,我们想要隔离。我们想确定这是入侵者。我们将使用一个叫做图像分割技术在图像处理。所以从本质上讲,我们要段这个人从图像我们可以做一些分析。我们想忽略所有的事情都是常数,因为这是非利息。
所以让我们继续,一步您通过我们如何细分和分析这个形象。让我们继续和关闭一些窗口。通常首先分割图像在你的路径是你要将图像转换为灰度。所以你可能会问的第一个问题是,我怎么做?一种方法是你可以对上面的搜索栏。你可以输入灰度。如果我这样做,你会看到一些搜索建议。或者你可以点击返回这里。,你会在这里看到的帮助下你会看到你可以解决问题,完善产品类型。或者你可以向下滚动并开始检查的一些功能。 And you'll see here, here's an RGB to gray. So this sounds like what I want. If I click on it, you'll see the description—convert RGB image or color map to grayscale.
这听起来像我想要的。这里有一个例子的语法你可以看到它是从哪里来的,图像处理Toolbox-import,出口和转换。这是一个图像类型转换。在我回去之前使用这个函数,我只是想告诉你在更高的层面,如果我点击这里,这是一个很好的方式来浏览所有不同类别的图像处理工具箱的功能。这实际上会在所有其他的工具箱。如果你去帮助,如果你看的所有不同类型的工具箱,你可以得到一些真正伟大的指导如何使用不同的功能。
如果我们回到图像处理工具箱,你看到他们是如何分类。你看到图像增强功能。你可以点击这里。有对比的调整。你可以回到输入、输出、转换,如果你想要一个类型转换。这是我们想要的功能,RGB灰色。所以帮助是一个很好的资源。您可以使用搜索栏,或者你可以浏览和探索。有很多伟大的例子文件中,。
让我们继续,开始使用这个函数。所以我要创建两个新变量。我要叫它图像灰色,所以imgray1。我将使用RGB。和我点击选项卡的帮助我,这让我想起与RGB前缀的常见功能。所以我希望RGB灰色。我将做这个测试图像,点击选项卡上。我想要测试图像1。然后我想创建另一个,图片灰色2,设置这个等于RGB灰色,这是测试图片2。
这是我的两个灰度图像。你看到他们现在在工作区中填充。我可以继续和情节来验证它们的存在。之前。我点击这里。这是后。所以我们绝对的路上。
所以我们就在这儿了。我们基本上转化为灰度。现在我们想要进入下一个步骤。但在我再次这样做,记住,如果你在命令窗口输入,它可以有点费力。我要继续,为了打开一个脚本的时间我已经写了。所以在这里,图像检测。
在这里你会看到我阅读的图像。记住之前我只是双点击图片在文件浏览器和使用导入向导拉他们。您还可以使用这个imread在MATLAB函数。如果我点击F1,这会带来我们的帮助。你可以看到这是一个函数,读取一个图像或图形文件。这是语法。如果你向下滚动,这是它与不同的文件类型。这是一个伟大的方式只是导入的图像内部在命令行或脚本。
我要去清理我们的环境从一开始就重新运行这个脚本。你可以看到我有这方面的代码用黄色突出显示。所以这是什么,实际上是一个代码段。如果我点击,你可以看到这个黄色的区域移动。MATLAB,所以这是一个有趣的地方。您可以创建这些代码部分两个百分号。如果我去一个百分号,这是简单的评论。但是如果我去双百分号,我创建了一个部分的代码。
这本质上是一个复杂的断点,如果你愿意。这一切在黄色区域是一个单一的执行点。所以如果我运行这个部分,它将运行所有的代码在那里。我可以搬出去。所以我可以回来前一节。这是一个真正伟大的迭代方式,很快聚集到一个解决方案。和你不需要运行整个文件或整个应用程序和运行顺序或时间顺序喜欢你所做的一切在很多其他语言中,一个真正伟大的工作方式与环境。
让我们继续遍历这个脚本。所以这里是第一部分。我要去我的编辑选项卡,单击“运行”。让我们继续运行。我们填充空间的两个彩色图像。我现在要做一个imshow他们两人。在这儿。这是我的形象。之前。让我们继续,将它们转换为灰色。
这里我们有两个图像workspace-print那些imshow。在这儿呢。这里就是我们要开始部分的图像。所以回到我们这里这两个图像的灰度。这是我的。这是我的。记住,这里有很多常数,对吧?所有的背景图片都是静态的。唯一的改变是我们想要隔离或部分。这带给我们的另一个简单但强大的方面如何做细分。 And that's background subtraction.
所以我们要把我们这里的参考图像减去它远离我们的第二个图片。希望我们会剩下的只是这里的有什么不同。如果我们回到MATLAB,在本节中,您将看到减去图片,有多种方法。我这样做的方法之一,就是要跑,我有两张图片,我之前和之后。我要减去1。我要做一个绝对值,以确保我没有负数。这是使用基本的数学。记住,MATLAB将一切视为矩阵。这只是一个简单的数学操作。没有for循环。 There's nothing really tricky. Just by doing a simple subtraction, I'm able to remove the background.
你也可以使用imsubtract。所以图像减去一个图像处理功能。这只是显示你有多种方式在MATLAB做同样的事情。和这是一个非常灵活的环境。
让我们继续,减去图像。让我们提前去运行这个部分。现在你离开如此这是非常有趣的。所有的背景变黑。和我想要的东西分段,你可以看到他开始出现。他有点褪色。但是你可以看到这是做了很好的工作。实际上我有入侵者有点突出。但是我们要做一个小更多的处理我们可以更明确和更容易处理。但我们肯定在正确的轨道上。
这里的代码在本节中,我们将找到最大值的位置的差异。所以这一切都是真的做的是寻找最高的强度。它会通过每一个行和列,寻找最大的像素强度。如果我们想看看那是什么在下一节的代码,在这里我们使用diff imtool看图像。让我们继续运行这个部分。我可以按ctrl + enter运行这段代码。这里有我们的形象。让我们继续,放大一点。
如果我们点击按钮,检查像素的强度。我可以继续拖动这个。我们可以在这里看。我们可以看到,在黑色的区域,当然,这是接近于零。人本身,你可以看到周围的40到150之间。所以你可以看到强度。它们有点低,其中的一些。但有些高达150,最高是256年左右,我们非常远。
所以我们要做的是运行这段代码。所以你看到我的订单。让我们继续,找到马克斯的不同位置。如果我们运行这个,你会看到,这是我的照片。我们画了一个漂亮的小明星,我们有最高的强度。我相信我们看到使用imtool。我们发现大约155。本质上,这是标记如重心或物体的质心。所以我们去未来imtool已经使用。让我们继续,搬到这个阈值区域。
因此阈值是另一个简单但功能强大的图像处理技术。从本质上讲,我要做的是将灰度图像转换成一个二进制图像,只有1和0。我就是我要创建这个新变量打形象。我要把图像区别l和我要说的一切,有一个强度值大于8,我想改变,1。所有低于8,我要设置为0。再一次,这是阈值,如果你愿意,我们要把它的地方。如果你记得一些强度,其中大多数是20或40左右。然后一切附近的背景是黑色的。所以我们应该有良好的结果。让我们继续和运行这一节。 Again, I'm just going to hit Control-Enter.
你可以看到,嗯,现在更加明显。我们有我们的对象,我们的入侵者,在这里,很好突出显示。这是我们的重心,以确保我们有一个正确的对象。然而,我们确实有一些随机噪声泄漏。这可以从相机运动或者背景时减去留下一些残渣。所以我们要干净。因为一旦我们去我们的下一步,我们希望这张照片很干净。因为地区分析或对象分析,所有这些小点,从本质上讲,是小对象。这真的可以摆脱我们的一些计算。
让我们继续,工作更形象。我们要使用在这个填充区域部分,我们将使用一个名为bwareaopen的函数。这个函数实际上是一个形态学算子。形态学是真的只是一个shape-based过滤器。这是一个图像处理技术。如果我按F1,这就是我们可以过滤图像基于形状。
在这种情况下这是一个更灵活。我们要输入我们的黑白图像。但是字母p或者输入值是什么,就是对象的大小,我们将屏幕?面积是多少?所以你要把在一个区域像素,你想要的屏幕。在我们的例子中,我们想在这里说的二进制图像。我们要通过作为一个变量。我们会说所有的15个像素或更大我们将继续。下面的一切,我们要辍学,基本上为0。这应该希望清理图像相当多。
所以让我们继续运行这个section-Control-Enter。你会看到它工作得很好。所有的随机噪音消失了。我们有对象,主要的一个。它看起来像他的手,这可能是他的影子的一部分。但除此之外,它还非常好。我们可以肯定这个工作。让我们继续回到这里。
在本节中,我们要做一个所谓的图像叠加。和有趣的是这个函数不是从MATLAB函数。这不是图像处理工具箱的一部分。它实际上是一个工具,我们下载的文件交换。这是来自我们的用户社区。让我们继续,我将向您展示我的地方。
这里我们在MATLAB的中央。这是我们的用户社区的MATLAB。在这里你可以找到很多很好的资源,如代码示例。人们问问题,讨论的话题。还可以得到一些很好的实用程序。这是图像叠加。如果我点击这个按钮,你会看到一个描述。这只覆盖一个图像。得到一个很好的视觉。你要突出感兴趣的东西。 And in our case, we want to highlight our intruder. So this is a perfect function for our use case.
让我们继续回到MATLAB。这是我们的图像叠加功能。你可以看到它。我们下载它。在当前文件夹的。我们要通过两幅图像。所以让我们继续和运行code-Control-Enter本节。在这里,我们有我们的形象。你可以看到我们用红色突出显示的入侵者。现在这是一个很好的视觉的方式来显示用户或任何我们共享的代码真的改变了我们内部图像的识别。 And here's our intruder.
所以让我们继续和回来。我们要做的另一个步骤处理。记住,我是衡量这个人。我弄明白他们有多高。当然,也许我们想要屏幕,没有任何虚假的触发器,说,当一只猫进入视野。这不是我们关心的事情。但当一个人进来,我们想肯定会发出警报。
这里我们说我们只关心东西超过80像素的长度或更多。这里我们要用一个函数来提取价值。我们将使用一个名为regionprops的函数。如果我按F1,你会看到这是来自我们的图像处理工具箱。这是一个非常强大的功能。因为它能够做的就是从图像中对象中提取数据。所以通过图像,你可以得到类似的区域。你可以找到重心,直径,像素值,强度,怪癖,圆的东西是如何,周长。所以很多强大的统计数据可以提取。甚至在我们的例子中,我们要寻找轴的长度,那么这个人是多高。
如果我们调用这个函数,我们将存储一些新的变量。在这里我们要经历和寻找所有主要的轴长度。我们要进行比较。任何大于80,我们要存储它们。然后如果是大于80,我们要做这个检查在这最后一节中,看看我们有什么感兴趣的,如果有真正的图像中不同的东西。
所以让我们继续和运行这段代码。在工作区中,你会看到,我们填充一些新的变量。这里有我们的图像数据和图像数据。如果我们打开这些数组在这里,你会发现我有很多主要的轴,所以发现了一串的长度。然而,唯一一个我们感兴趣的是这个超过80:107。为了验证过滤工作,在这里我们可以看到我们的主要轴80以上。我们发现它。这是107年的。
如果这是正常工作,如果我们运行我们的最后一部分的代码,这是说如果这个矩阵是空的我们会说没有什么不同。在我们的例子中,有一些。所以我们应该能够打印图像。所以让我们去运行这一节。如果我去命令窗口,你可以看到这里的输出打印出主要的长度超过80。它是107年。和一些图片。
所以我们看到我们的算法的工作现在很好。这是在一个大舞台,我们可以开始分享和获得反馈。所以有许多方面的共享代码。你肯定可以船周围的MATLAB文件。如果你的同事有MATLAB运行和测试它。但共享的另一个好方法是如果你点击代码这里我们在编辑器窗口中。你可以看到我们有一个新的编辑器选项卡。这是一样的,我是控制所有的步进通过不同的部分。但有趣的旁边,我们也发布选项卡。
这里你会看到你可以突出和做一些更加强调代码。因为你把MATLAB文件,m文件,将出现在您的最终报告。所以你可以赚很多额外的评论真的时提供更多的描述和上下文实际上是产生。
这里,如果我们去publish-let继续发布图像检测。基本上,当你这样做时,它会运行整个算法。所以让我们来运行它。现在你所拥有的是一个非常好的HTML文件。现在这个文档可以与他人共享。之前,如果你还记得,我们创造了这些部分的代码与双signs-each百分比的评论现在变成了一个导航点在这个表的内容。这是图片章节阅读。你会看到这里代表。这里的代码部分。这是显示彩色图像。 And you can see the output from that section of code, and so on.
这是一个伟大的方式来记录你的工作。你可以向你的同事很轻易展示逻辑来解决方案或聚集在你的结果。这就提出了一个很好的形式,不仅只是为了分享,也为自己的笔记来帮助你记录你的工作,所以一个伟大的方式共享。
现在让我们使用视频直播。因此,尽管这非常有趣我们已经与一些静态图片。我们真的发达,我们认为,什么是算法的关键。现在我们想扩大更多的走向我们的入侵检测系统。重要的一部分是使用视频直播。所以我们要使用一些低成本的硬件如一个简单的摄像头。为此,我们要继续,只是验证我们有正确的硬件连接。
如果我们去家里选项卡,点击附件,你可以看到,有一个选择有硬件支持包。万博1manbetx如果我们点击这里,你会发现它带来了不错的向导。在这里,你可以看到我们有选择。从互联网上我要安装。单击Next。这里有不同的选择。
这里是所有不同类型的硬件目标直接从MATLAB可以访问,从ARM处理器,覆盆子π,BeagleBoard,许多不同类型的输入,如乐高机器人Mindstorm为好。然后向下滚动,你会看到这是USB摄像头。如果我强调,你会看到我已经安装了它。所以它只是问我如果我想重新安装它。它只是告诉我版本。这就是你会选择不同的包支持的硬件类型你想要的界面。万博1manbetx
让我们继续,开始使用视频。我将打开另一个脚本,我之前写了。我去关闭这个。我们会看到在左边,我这一个叫细分强调fn。所以这是我早些时候写道同一幅图像检测算法。唯一的区别是我注释掉所有的imshows。因为我不需要调试了。我几乎知道所有的步骤都工作得很好。我用imshow很多调整,调整我的图片。因此算法的工作现在很好。
我做什么,如果你看看,是使用一个关键字称为函数。这是它本质上使整个文件有用得多。所以它是让我打电话给这个算法是一个函数。以同样的方式我喜欢RGB灰色称为函数,我现在可以称之为整个程序段强调功能。我的好处是不仅可以称呼它,我可以通过输入参数相同的方式你传入一个图像RGB转换为灰色。你可以通过,在这种情况下,之前,我办公室的参考图像,然后图像后,我们正在寻找我们的入侵者。
所以它会运行算法。甚至漂亮的是你要有,或者你可以有一个返回值。这里我们要通过突出显示的图像,一个我曾经从文件交换图像覆盖功能。如果我在这里向下滚动,你可以看到我做作业的地方。所以我执行图像叠加后,我回到这里的变量,通过强调形象。然后函数,或者无论这个函数,将返回这突出显示图像。
所以,功能非常强大,是一个伟大的方式让你的算法更容易和更容易使用。,我从另一个函数被称为security_cam调用这个函数。所以安全强调凸轮我的下一个函数。和所有这是做的是设置摄像头,我从网上下载支持包。万博1manbetx我设置了。在这里,我要带我的参考图像。所以我拍照之前我办公室的人已经进入了它。这就是我引用或我的背景图像。在这里,我要进入一个for循环。我经历的每一个迭代循环,我将带一个新快照寻找入侵者。 And then I'm going to call my segmentation function. I'm going to pass my reference image as well as my newly taken picture, and I'm going to hopefully come back with nothing. But if it does detect an object, it will return it here and will print that out to the display.
这就是全部了。我引用我的算法。我进入一个函数。我在这个漂亮的for循环运行。实际上,我这里的安全功能,。所以我可以去命令行,输入这个。如果我继续在security_cam和类型,点击返回,在这里我有我的视频直播。
你可以看到我的手被分割。用红色突出显示。你可以看到在我的命令窗口,被检测到。但是如果我把我的手移开,你可以看到它的回到没有在图中。这是真正的验证。我增加的数据集。现在我使用视频直播。
最后阶段,我要做的就是我要把一个漂亮的用户界面上的算法。所以我创建了它。我确认它与真实的视频。现在我要创建一个用户界面。为此,我使用所谓的指导。所以指南,如果你走进我们的搜索,你就会明白我在说什么。所以在帮助,您将看到打开一个GUI布局编辑器。所以图形用户界面GUI是短暂的。你会看到有不同的方式构建这些用户界面。
所以建立对话框的方法。你可以做一些非常复杂的ui。所以有一个很好的方式接口允许您建立很好的接口和算法和优化。它还允许您轻松地分享这些。当你构建这些gui,本质上,你创建一个应用程序。所以当你有这些应用程序,有各种各样的方法来安装它们。可以提供安装其他MATLAB的人,所以一个很好的方式让你的代码更可共享和让你的代码到一个完整的应用程序。
即使所有这些小工具,如果我回到MATLAB这里吧,让我们继续,告诉你这里是什么。这是一个图窗口。所以使用指南,如果我打开这个,你会看到我们实际使用很多不错的实用工具来创建这些漂亮的对话框,创建这些图,你会看到在一分钟内填充。你看到了,实际上,在开始的时候。这是所有正在运行。我们创造了这些不错的滑动条,启动和停止按钮,甚至按钮将参考图像,所以很好的布局你的接口的方法。
这里我不会束缚住你的代码,但本质上,这个函数连接到用户界面。这里的所有代码都是正确的。在最终的结果,如果我运行这个,你就会看到会发生什么是我们得到了这个很好的界面。我可以把我的参考图像。你会看到的我的照片,我的办公室。这是我的开始按钮。如果我点击开始你所看到的,好吧,它工作得很好。但在这里我有调谐旋钮。所以我可以移动这和得到它,它的正确分割。这是没有选择正确的对象的长度。 So let's go ahead and tune this till we get an alert. And now we've essentially tuned it. And we have a really nice working system.
所以,这里我们有一个很好的用户界面。我们有我们的算法运行下面。我们有好的互动。我们还可以与我们的用户共享一个HTML文件和帮助文件发布你所做的事。让我们继续回到我们的演示。
总结我们的演示我们回到典型技术计算工作流。你看到我们如何访问数据。首先,我们处理标准JPEG图像。我们进口导入向导。我们做了一些发展。我们甚至后来集成一些硬件使用低成本的网络摄像头。我们做了我们的算法开发。和我们共享使用好发布功能。所以我们能够在不同的阶段。你看到我们使用脚本帮助自动化的东西。 And in doing so we used MATLAB and some of the functions from the Image Processing Toolbox to make our intruder detection system.
所以想要了解更多关于MATLAB,请访问我们的网站www.tianjin-qmedu.com/matlab。你会发现有很多有用的视频,代码示例开始和灵感在创建自己的应用程序。如果你需要任何帮助或帮助,当然我们有支持。万博1manbetx而且MATLAB的中央是一个巨大的资源,你就会发现很多专家,从MathWorks以及在我们的社区,帮助回答问题,把伟大的主题,以及共享代码只是为了真正激发,并让您开始您的旅程。
了解更多关于图像处理工具箱,请访问我们的网站www.mathworks.co m /产品/形象。s manbetx 845你会发现有很多其他的视频和例子,所有相关的图像处理。你会看到我的照片在右边。如果你有任何问题,也许你的新领域,只是想讨论的一些功能,随时给我发电子邮件。我会尽我所能回答你。
所以请留下来。我们课程结束的时候。希望你学到一些东西,有了一个好的介绍MATLAB,看到的一些功能的可能性。请留下来。我们有问答环节。请输入你的问题。我们将一个短暂的休息。然后我们会回来,回答你的问题。所以再次感谢,马上见到你。
您可以在欧什一张网站来自der folgenden Liste auswahlen:
所以erhalten您死bestmogliche Leistung der汪汪汪的网站
民意调查您毛皮死bestmogliche Website-Leistung死网站中国毛皮(auf Chinesisch奥得河Englisch)。安德利果汁landesspezifische网站冯MathWorks信德毛皮Besuche冯Ihrem Standort来自不optimiert。