主要内容

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

本示例展示了如何使用树莓派™块库中的V4L2视频捕获和SDL视频显示块,使用Simulink®模型实现图像反转算法,并在树莓派硬件上运行该模型。

简介

黑白图像反转是将亮区映射为暗区,暗区映射为亮区的一种图像处理技术。换句话说,图像反转后,黑变白,白变黑。颠倒的黑白图像可以被认为是原始图像的数字负片。

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

先决条件

完成开始使用树莓派硬件的Simulink支持包的例子。

所需的硬件

要运行这个例子,你需要以下硬件:

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

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

  • USB鼠标键盘

open_system (“raspberrypi_inversion”

任务1 -连接摄像头

在此任务中,您将连接USB相机或树莓派相机模块到树莓派硬件,并检查Linux内核是否正确检测到相机。

1.如果你有USB摄像头:

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

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

  • 摄像机模块和树莓派板之间使用CSI线缆连接,请参考厂商说明。

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

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

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

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

典型输出为:

crw-rw——T+ 1根视频81,0 12月16日14:43 /dev/video0

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

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

在图像反转模型上执行Monitor和Tune操作。图像从连接到树莓派硬件的USB摄像头捕获,图像反转的结果被发送回主机,由SDL视频显示块显示。

1.打开图像反演模型。

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

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

4.观察主机上倒置图像的显示情况。

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

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

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

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

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

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

3.打开图像反演模型。

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

5.硬件选项卡中的模式部分中,选择机上运行然后点击构建、部署和启动在树莓派硬件上运行这个模型。在连接到树莓派硬件的显示器上,您将看到一个显示倒置图像的窗口。

6.通过在MATLAB命令行中执行以下命令,停止在树莓派硬件上运行的模型

stopModel (r,“raspberrypi_inversion”);

其他可以尝试的事情

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

Baidu
map