电赛智能送药小车_OpenMV巡线&识别十字路口完整代码
创始人
2024-12-07 12:06:34
0次

 整体思路:通过划分ROI区域分区进行识别,中央ROI区域为巡线,左右两侧的ROI_L和ROI_R为十字路口识别.

主程序如下:

# Description: 本程序为OpenMV的主程序,通过串口与单片机通信,接收单片机发送的图像数据,进行图像处理,然后发送处理结果给单片机 import sensor, image, time, json, pyb from pid import PID from pyb import UART THRESHOLD = (29, 63, 38, 81, 3, 66) # 红线 uart = UART(3, 115200)  # p4为TX,p5为RX rho_pid = PID(p=-20, i=0)   # rho是距离 theta_pid = PID(p=-0.2, i=0) sensor.reset() sensor.set_vflip(True)      # 左右镜像 sensor.set_hmirror(True)    # 上下镜像 sensor.set_pixformat(sensor.RGB565) # 使用RGB565模式 sensor.set_framesize(sensor.QQQVGA) # 80*60分辨率 sensor.skip_frames(time=1000)   # 跳过1000帧 clock = time.clock()        # 跟踪FPS帧率 global cross    #十字路口标志位 while True: 	clock.tick() 	img = sensor.snapshot().binary([THRESHOLD]) # 二值化图像 	ROI = (39, 0, 15, 59)  						 # 47为小车摄像头正中间 	blobs = img.find_blobs([(100, 100)], roi=ROI, area_threshold=15, merge=True)    # 100,100代表色值max和min 	line = img.get_regression([(100, 100)], roi=ROI, robust=True) 	ROI_L = (0, 45, 32, 50) 	ROI_R = (59, 45, 21, 50) 	blobs1 = img.find_blobs([(100, 100)], roi=ROI_L, area_threshold=15, merge=True) 	blobs2 = img.find_blobs([(100, 100)], roi=ROI_R, area_threshold=15, merge=True)  	#试试img.draw_rectangle(ROI) 	img.draw_line((35, 0, 35, 60), color=(0, 255, 0))   # !注意画的线颜色也会被色块查找函数使用,所以不要画白线 	img.draw_line((59, 0, 59, 60), color=(0, 255, 0))  	img.draw_line((0, 45, 35, 45), color=(0, 255, 0)) 	img.draw_line((59, 45, 80, 45), color=(0, 255, 0)) 	if blobs1 and blobs2: 		cross = 1	#十字路口标志位 		print('2') 		uart.write("2" + "\r\n") 		pyb.delay(500) 	else: 		cross = 0 		pass 	if blobs: 		if line: 			rho_err = abs(line.rho()) - 47	# 47为小车摄像头正中间 			if line.theta() > 90: 				theta_err = line.theta() - 180 			else: 				theta_err = line.theta() 			img.draw_line(line.line(), color=127) 			if line.magnitude() > 8: 				rho_output = rho_pid.get_pid(rho_err, 1) 				theta_output = theta_pid.get_pid(theta_err, 1) 				output = rho_output + theta_output 				obj = [output] 				output = json.dumps(obj) 				print("1" + output + "\r\n") 				uart.write("1" + output + "\r\n") 			else:	#线太短,停止 				print(3) 				uart.write("3"  + "\r\n") 				pass 		else:	#没有找到线 			print(3) 			uart.write("3" + "\r\n") 			pass 

# 本文代码中所导入的pid.py就是OpenMV官网上例程的代码

完整源码有偿,需要请私信我。

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...