主要内容

使用树莓派实现图像反演算法

这个例子展示了如何使用V4L2视频捕获和SDL视频显示块从树莓Pi®块库实现一个图像反演算法与Simulink®模型,并在树莓Pi硬件上运行模型。万博1manbetx

介绍

黑白图像反演是指将亮区映射到暗区,暗区映射到亮区的图像处理技术。换句话说,在图像反转后,黑色变成白色,白色变成黑色。颠倒的黑白图像可以看作是原始图像的数字负片。

在本例中,将反演算法应用于从USB相机捕获的图像的红色(R)、绿色(G)和蓝色(B)组件,创建彩色数字负效应。图像的R, G和B组件被表示为uint8值。也就是说,任何颜色组件的取值范围是0到255。假设位置处的强度值(x, y)美元这个图像的我(x, y)美元,则反演映射定义为美元I_{倒}(x, y) = 255 - i (x, y)

先决条件

所需的硬件

要运行此示例,您将需要以下硬件:

(可选)要在外部显示器上显示输出视频,您将需要以下功能:

  • HDMI或复合电视,或DVI或HDMI输入的显示器,以及适当的电缆

  • USB鼠标和键盘

任务1 -连接摄像机

在本任务中,您将连接USB摄像头或树莓派摄像头模块到您的树莓派硬件,并检查Linux内核是否正确检测到摄像头。

1.如果你有USB摄像头:

  • 将USB摄像头连接到树莓派板上的USB端口之一。请注意,一些相机可能会消耗太多的电力,可能需要一个供电的USB集线器来正常运行。

如果你有树莓派相机模块:

  • 请参考厂商说明,使用CSI线缆将摄像机模块连接到树莓Pi板上。

  • 在MATLAB®提示符下执行以下命令激活树莓派相机模块V4L2内核驱动程序:

r = raspberrypi;系统(r / sbin / modprobe bcm2835_v4l2)

2.在MATLAB提示符下执行以下命令,检查Linux内核是否识别摄像机:

系统(r, ls的推拿/dev/video *)

典型输出如下:

crw-rw—T+ 1 root video 81, 0 Dec 16 14:43 /dev/video0 . log . log . log . log . log . log . log

请确保上面显示的视频设备文件名与V4L2视频捕获块掩码上指定的“设备名称”参数匹配。在本例中,'Device name'应该设置为'/dev/video0'。

任务2 -信号监控和参数调整

对图像反转模型执行监视和调整操作。图像从连接树莓派硬件的USB摄像头捕获,并将图像反转的结果发送回主机,由SDL视频显示块显示。

1.打开图像反演模型。

2.选择应用>在硬件板上运行.查看打开页面的参数,确保树莓Pi板的连接参数是正确的。

3.硬件选项卡中的万博1manbetx模式部分中,选择机上运行然后点击监视和优化在树莓派的硬件上运行模型。

4.观察主机上倒立图像的显示。

5.当模型运行时,双击常数阻塞并更改恒定值例如,从255到120。观察产生的图像效果。

6.按下停止按钮以停止模型执行。

任务3 -配置和运行镜像倒置模型作为独立的应用程序

在本任务中,您将连接一个监视器到树莓派硬件。USB摄像头拍摄的视频将被运行在树莓派硬件上的模型倒转,并显示在连接到树莓派硬件的显示器上。

1.使用适当的电缆,将显示器或电视连接到树莓派硬件。一旦连接,监视器将显示Linux桌面。

2.连接USB鼠标和键盘到树莓派硬件的USB端口。一旦连接,登录到Linux桌面就像你会到任何Linux®计算机。

3.打开图像反演模型。

4.选择应用程序>运行在硬件板>选项….查看打开页面的参数,确保树莓Pi板的连接参数是正确的。

5.硬件选项卡中的万博1manbetx模式部分中,选择机上运行然后点击构建、部署和启动在树莓派的硬件上运行模型。在连接到树莓派硬件的监视器上,你会看到一个显示倒挂图像的窗口。

6.在MATLAB命令行上执行以下命令,停止运行在Raspberry Pi硬件上的模型

stopModel (r,“raspberrypi_inversion”);

其他可以尝试的事情

  • 更改模型,为每个颜色组件使用不同的常量值。然后,独立地改变每个常数的值,以获得更大范围的成像效果。