【Nano Pi 2】-11 OpenCV开发(二)几个例子
——cztqwan
转载请注明ICKey!
前一个帖子已经在Nano Pi2上运行了一个简单的例子,由于没有摄像头模块,所以用了一个很简单的例子来测试预装的OpenCV软件库是否正常。本帖将实现几个比较简单的例子,继续展示OpenCV的功能。
图像腐蚀是最基本的形态学运算之一, 即用图像中的暗色部分“腐蚀”掉图像中的高亮部分。代码如下:
程序首先是载入图像,然后显示原图像,接着定义一个Mat类型的变量来获得getStructuringElement函数的返回值,而getStructuringElement函数的返回值为指定形状和尺寸的结构元素。接着调用erode函数进行图像腐蚀操作,最后调用imshow函数显示处理后的图像,用waitKey函数等待按键按下,以便能让窗口一直显示。效果如下:
均值滤波可以模糊图像,在图像上对目标像素给一个模板,该模板包括了其周围的临近像素,再用模板中的全体像素的平均值来代替原来像素值。
程序代码作常好理解,载入并显示原始图后,调用一次blur函数,最后显示效果图。效果如下:
边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。
载入图像,并将其转成灰度图,再用 blur函数进行图像模糊以降噪,然后用canny函数进行边缘检测,最后进行显示。效果如下:
视频播放其实就是把一帧一帧的图像按一定的速度显示出来。
首先定义了一个Mat变量,用于存储每一帧的图像,接着读取当前帧到Mat变量中,然后调用imshow显示当前的这一帧图像,并用waitKey延时30毫秒,开始下一次循环。
Nano Pi2的Debian固件对OpenCV的支持是非常不错的,学习OpenCV的同学使用一个Nnao Pi2应该是非常方便的。