利用openmv,画出三角形和三角形的外接圆
时间: 2023-12-16 12:04:22 浏览: 36
首先,我们需要准备一个OpenMV Cam和一个带有三角形的纸片。然后按照以下步骤进行操作:
1.在OpenMV IDE中打开一个新的文件,命名为triangle_detection.py。
2.导入必要的库:import sensor, image, time, math
3.初始化摄像头:sensor.reset(),sensor.set_pixformat(sensor.RGB565),sensor.set_framesize(sensor.QVGA),sensor.skip_frames(time = 2000),sensor.set_auto_gain(False),sensor.set_auto_whitebal(False)
4.定义一些常量,例如阈值、颜色和三角形的最小和最大大小。
threshold = (30, 100, -60, -10, -30, 30) # 颜色阈值
color = (255, 0, 0) # 画笔颜色
min_size = 100 # 三角形的最小面积
max_size = 10000 # 三角形的最大面积
5.定义一个函数,用于检测三角形:
def find_triangle():
img = sensor.snapshot() # 获取当前图像
blobs = img.find_blobs([threshold], pixels_threshold=100, area_threshold=100, merge=True) # 通过颜色阈值获取三角形
for blob in blobs:
if min_size < blob.pixels() < max_size:
x, y, w, h = blob.rect()
points = [(x, y), (x + w, y), (x + w, y + h), (x, y + h)]
center = (x + w // 2, y + h // 2)
img.draw_polygon(points, color = color, thickness = 2) # 绘制三角形
img.draw_circle(center, int(math.sqrt(w ** 2 + h ** 2) / 2), color = color, thickness = 2) # 绘制外接圆
6.在主循环中不断调用find_triangle()函数:
while True:
find_triangle()
7.保存文件后,将代码上传到OpenMV Cam中,并将摄像头对准三角形。
8.然后就可以看到OpenMV Cam检测到三角形并绘制出它的外接圆了。
注:由于环境和摄像头的差异,可能需要微调一些参数以获得更好的结果。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)