【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3

MixPY——让爱(AI)触手可及

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第1张图片

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第2张图片

MixPY布局

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第3张图片
【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第4张图片

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第5张图片

主控芯片:K210(64位双核带硬件FPU和卷积加速器的 RISC-V CPU)
显示屏:LCD_2.8寸 320*240分辨率,支持电阻触摸
摄像头:OV2640,200W像素
扬声器:3W单声道喇叭,及2.5mm双声道耳机孔
麦克风:一颗数字高灵敏MEMS硅麦
存储介质:16MBFlash,可外接<32G calss10 TF内存卡
板载功能:RGB三色灯,自定义2颗按键,重力感应
电池管理:PMU电源管理,3重电池保护电路及550mah锂电池
无线网卡:ESP8285,WiFi无线网卡
下载驱动:CH340,USB转TTL串口驱动电路
外接拓展:3个 Type-C扩展接口,可外接18IO口及双电源输出

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第6张图片

知识点
(1)机器视觉(Machine vision)
是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

机器视觉是一项综合技术,包括图像处理、机械工程技术、控制、电光源照明、光学成像、传感器、模拟与数字视频技术、计算机软硬件技术(图像增强和分析算法、图像卡、 I/O卡等)。一个典型的机器视觉应用系统包括图像捕捉、光源系统、图像数字化模块、数字图像处理模块、智能判断决策模块和机械控制执行模块。机器视觉系统最基本的特点就是提高生产的灵活性和自动化程度。在一些不适于人工作业的危险工作环境或者人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉。同时,在大批量重复性工业生产过程中,用机器视觉检测方法可以大大提高生产的效率和自动化程度。

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第7张图片

(2)机器视觉技术
是一门涉及人工智能、神经生物学、心理物理学、计算机科学、图像处理、模式识别等诸多领域的交叉学科。机器视觉主要用计算机来模拟人的视觉功能,从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、测量和控制。机器视觉技术最大的特点是速度快、信息量大、功能多。机器视觉主要用计算机来模拟人的视觉功能,但并不仅仅是人眼的简单延伸,更重要的是具有人脑的一部分功能一一从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、测量和控制。

将机器视觉技术应用于禽蛋品质检测具有人工检测所无法比拟的优势。表面缺陷与大小、形状是蛋品品质的重要特征,利用机器视觉进行检测不仅可以排除人的主观因素的干扰,而且还能够对这些指标进行定量描述,避免了因人而异的检测结果,减小了检测分级误差,提高了生产率和分级精度。一个典型的工业机器视觉应用系统,包括数字图像处理技术、机械工程技术、控制技术、光源照明技术、光学成像技术、传感器技术、模拟与数字视频技术、计算机软硬件技术、人机接口技术等。

机器视觉不同于计算机视觉,它涉及图像处理、人工智能和模式识别。机器视觉是专注于集合机械,光学,电子,软件系统,检查自然物体和材料,人工缺陷和生产制造过程的工程,它是为了检测缺陷和提高质量,操作效率,并保障产品和过程安全。它也用于控制机器。机器视觉是将计算机视觉应用于工业自动化。

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第8张图片

(3)图像处理
图像处理是对图像进行分析、加工和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用。大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。此外,基于光学理论的模拟图像处理方法依然占有重要的地位。图像处理是信号处理的子类,另外与计算机科学、人工智能等领域也有密切的关系。传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪、量化等。然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。几十年前,图像处理大多数由光学设备在模拟模式下进行。由于这些光学方法本身所具有的并行特性,至今他们仍然在很多应用领域占有核心地位,例如全息摄影。但是由于计算机速度的大幅度提高,这些技术正在迅速的被数字图像处理方法所替代。从通常意义上讲,数字图像处理技术更加普适、可靠和准确。比起模拟方法,它们也更容易实现。专用的硬件被用于数字图像处理,例如,基于流水线的计算机体系结构在这方面取得了巨大的商业成功。今天,硬件解决方案被广泛的用于视频处理系统,但商业化的图像处理任务基本上仍以软件形式实现,运行在通用个人电脑上。

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第9张图片
5、绘制十字

绘制十字函数

.draw_cross(x,y[,color[,size=5[,thickness=1]]])

图像上绘制一个十字

参数:
x,y:绘制的十字的中心坐标,可以为单独传递,也可以为元组
color:绘制的圆形颜色(默认白色):
RGB56516 位的颜色值,比如0xFFFF
RGB888元组, 比如(236, 36, 36)
GRAYSCALE灰度图素值(0-255)
size:控制十字的延伸长度像素
thickness:控制十字的条框粗细像素

返回:
返回一个图像对象
不支持压缩图像

#MicroPython动手做(39)——机器视觉之图像基础
#屏幕中心绘制白色十字

import mixno
import lcd
import image


lcd.init(freq=15000000,color=0)
image = image.Image()
lcd.display(image.draw_cross([160,120],65535,30,2))

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第10张图片
实验场景图

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第11张图片

MixPY 实验图形编程

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第12张图片

#MicroPython动手做(39)——机器视觉之图像基础
#绘制多彩十字

import time
import mixno
import lcd
import image


lcd.init(freq=15000000,color=0)
image = image.Image()
lcd.display(image.draw_cross([60,80],57599,30,2))
time.sleep_ms(1000)
lcd.display(image.draw_cross([110,200],57351,30,6))
time.sleep_ms(1000)
lcd.display(image.draw_cross([190,50],248,30,5))
time.sleep_ms(1000)
lcd.display(image.draw_cross([270,150],7936,30,9))

实验场景图

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第13张图片

MixPY 实验图形编程

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第14张图片

#MicroPython动手做(39)——机器视觉之图像基础
#满屏随机绘制绿色十字

import time
import random
import mixno
import lcd
import image


lcd.init(freq=15000000,color=0)
image = image.Image()
mylist = [0,0]
while True:
    mylist[0] = random.randint(1, 319)
    mylist[1] = random.randint(1, 239)
    lcd.display(image.draw_cross(mylist,57351,28,3))
    time.sleep_ms(1000)

MixPY 实验图形编程

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第15张图片

#MicroPython动手做(39)——机器视觉之图像基础
#满屏随机绘制红绿色十字(实验视频)

https://v.youku.com/v_show/id_XNDc0MzM2NzU2NA==.html?spm=a1z3jc.11711052.0.0&isextonly=1

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第16张图片

6、综合实验——绘制一节电池

#MicroPython动手做(39)——机器视觉之图像基础
#综合实验——绘制一节电池

import mixno
import lcd
import image


lcd.init(freq=15000000,color=0)
image = image.Image()
lcd.display(image.draw_rectangle([100,80,170,80],248,3,0))
lcd.display(image.draw_rectangle([80,100,20,40],248,3,0))
lcd.display(image.draw_cross([140,120],57351,10,3))
lcd.display(image.draw_line([215,120,230,120],57351,4))
lcd.display(image.draw_string(120,190,"Battery",65535,5,mono_space=0))

实验场景效果图

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第17张图片

MixPY 实验图形编程

【雕爷学编程】MicroPython动手做(39)——机器视觉之图像基础3_第18张图片

你可能感兴趣的:(MicroPython动手做,嵌入式硬件,物联网,人工智能,单片机,python,K210,机器视觉)