主页 > 开源代码  > 

图像处理篇---基本OpenMV图像处理

图像处理篇---基本OpenMV图像处理

文章目录 前言1. 灰度化(Grayscale)2. 二值化(Thresholding)3. 掩膜(Mask)4. 腐蚀(Erosion)5. 膨胀(Dilation)6. 缩放(Scaling)7. 旋转(Rotation)8. 平移(Translation)9. 边缘检测(Edge Detection)10. 轮廓检测(Contour Detection)11.总结总结


前言

本文仅仅简单介绍了Openmv中常见的图像处理操作(灰度化、掩膜、二值化、腐蚀、膨胀、缩放、旋转、平移、边缘检测、轮廓检测)


1. 灰度化(Grayscale)

将彩色图像转换为灰度图像,减少计算量。

实现方法:

import sensor sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) # 设置为灰度模式 sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() # 捕获灰度图像 2. 二值化(Thresholding)

将灰度图像转换为黑白图像,通过设定阈值分离目标区域。

实现方法:

import sensor sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) threshold = (100, 255) # 阈值范围 while True: img = sensor.snapshot() img.binary([threshold]) # 二值化处理 3. 掩膜(Mask)

通过掩膜操作提取图像中的特定区域。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) mask = image.Image(size=(100, 100), copy_to_fb=True) # 创建掩膜 mask.draw_rectangle(20, 20, 60, 60, color=255, fill=True) # 在掩膜上绘制白色矩形 while True: img = sensor.snapshot() img.mask(mask) # 应用掩膜 4. 腐蚀(Erosion)

去除图像中的细小噪声,使目标区域缩小。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() img.erode(1) # 腐蚀操作,参数为腐蚀次数 5. 膨胀(Dilation)

填充目标区域中的空洞,使目标区域扩大。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() img.dilate(1) # 膨胀操作,参数为膨胀次数 6. 缩放(Scaling)

调整图像大小。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() img.scale(x_scale=0.5, y_scale=0.5) # 缩放为原来的一半 7. 旋转(Rotation)

旋转图像。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() img.rotation_corr(angle=45) # 旋转45度 8. 平移(Translation)

平移图像。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() img.translation(x_offset=10, y_offset=10) # 向右下方平移10像素 9. 边缘检测(Edge Detection)

检测图像中的边缘。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() img.find_edges(image.EDGE_CANNY, threshold=(50, 80)) # Canny边缘检测 10. 轮廓检测(Contour Detection)

检测图像中的轮廓。

实现方法:

import sensor, image sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) while True: img = sensor.snapshot() contours = img.find_contours(threshold=2000) # 查找轮廓 for contour in contours: img.draw_rectangle(contour.rect(), color=127) # 绘制轮廓矩形框 11.总结

功能 方法 描述 灰度化 sensor.set_pixformat(sensor.GRAYSCALE) 将图像转换为灰度图 二值化 img.binary([threshold]) 将灰度图转换为黑白图 掩膜 img.mask(mask) 提取图像中的特定区域 腐蚀 img.erode(iterations) 去除噪声,缩小目标区域 膨胀 img.dilate(iterations) 填充空洞,扩大目标区域 缩放 img.scale(x_scale, y_scale) 调整图像大小 旋转 img.rotation_corr(angle) 旋转图像 平移 img.translation(x_offset, y_offset) 平移图像 边缘检测 img.find_edges() 检测图像中的边缘 轮廓检测 img.find_contours() 检测图像中的轮廓 通过以上功能,OpenMV 可以实现丰富的图像处理任务,适用于嵌入式机器视觉应用。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Openmv中常见的图像处理操作(灰度化、掩膜、二值化、腐蚀、膨胀、缩放、旋转、平移、边缘检测、轮廓检测)

标签:

图像处理篇---基本OpenMV图像处理由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“图像处理篇---基本OpenMV图像处理