openmv随笔(IDE第二篇)

openmv随笔(IDE第二篇)

获取/设置像素点/获取图像的宽度和高度
"""
openmv和opencv一样都支持像素操作(以后很多cv的用大都可以用到mv上了,不知道处理数据速度怎么样)
而且openmv中很多都和opencv一样,查看图像的宽高等等,就是没有看到通道值
对了好像图片不支持查看row,这个IDE做的不好的地方不能智能识别你前面的变量是什么类型,取而代之他把所有变量的属性给你,所以你.出来的属性可能这个变量并没有这个属性
好了既然这样的话我要大展身手了,不过在此之前我们还要看一下串口,方便自己的调试,因为这个IDE看不到底层
所以我们需要一个串口来帮助自己调试,下面是以一个简单的串口调试
"""
import time
from pyb import UART
uart = UART(3, 115200)
while(True):
    uart.write("Hello World!\r")
    time.sleep(1000)
    
# 既然都讲到这里了那我们就先看图像高度和宽度操作
import sensor
import time
from pyb import UART
uart = UART(3, 115200)

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((200, 200))
sensor.set_hmirror(True)
while(True):
    picture = sensor.snapshot()
    uart.writechar(picture.width())    
    time.sleep(1000)
# 这是我写的一个测试程序,注意我们uart发送的后面选择的方法是wirtechar,而不是write,因为writer不支持发送char,且我们得到的width应该是以一个char,最终我们看待串口输出十六进制0XC8,经过计算可得200,
    
    
"""
我们可以通过image.get_pixel(x, y)方法来获取一个像素点的值。
对于灰度图: 返回(x,y)坐标的灰度值.
对于彩色图: 返回(x,y)坐标的(r,g,b)的tuple.
同样,我们可以通过image.set_pixel(x, y, pixel)方法,来设置一个像素点的值。
按照上面的特性我猜这边image.get_pixel(x, y)应该是以一个char型,验证果然是char型
tuple是元组的意思,是python中一种数据类型,创建后不能更改其中的值

image.set_pixel(x, y, pixel)
对于灰度图: 设置(x,y)坐标的灰度值。
对于彩色图: 设置(x,y)坐标的(r,g,b)的值。
"""

img = sensor.snapshot()
img.get_pixel(10,10)
img.set_pixcel(10,10,(255,0,0))#设置坐标(10,10)的像素点为红色(255,0,0)
获取图像的宽度和高度
# 获取高度前面提到了一部分
image.width()
返回图像的宽度(像素)

image.height()
返回图像的高度(像素)

image.format()
灰度图会返回 sensor.GRAYSCALE,彩色图会返回 sensor.RGB565。
# 灰度图好像返回的是02 彩色图返回的是03
image.size()
返回图像的大小(byte)
图像的运算
image.invert()
# 取反,对于二值化的图像,0(黑)变成1(白),1(白)变成0(黑)。
# 有点当时学CV的感觉了 其实操作像素点也可以实现类似的操作,只不过别人帮你封装好了,你就不需要自己去操作了

在这里插入图片描述

"""
注:
图像可以是另一个image对象,或者是从 (bmp/pgm/ppm)文件读入的image对象。
两个图像都必须是相同的尺寸和类型(灰度图/彩色图)。
下面这些等我用到的时候在讲吧
"""
image.nand(image)
与另一个图片进行与非(NAND)运算。

image.nor(image)
与另一个图片进行或非(NOR)运算。

image.xor(image)
与另一个图片进行异或(XOR)运算。

image.xnor(image)
与另一个图片进行异或非(XNOR)运算。

image.difference(image)
从这张图片减去另一个图片。比如,对于每个通道的每个像素点,取相减绝对值操作。这个函数,经常用来做移动检测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值