MicroPython动手做(07)——零基础学MaixPy之机器视觉-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

MicroPython动手做(07)——零基础学MaixPy之机器视觉

[复制链接]
 楼主| 发表于 2020-4-5 14:35 | 显示全部楼层
尝试变动目标图像的三个顶点,看看有什么变化

[mw_shl_code=arduino,true]matrix = image.get_affine_transform([(0,0), (240, 0), (240, 240)], [(60,60), (240, 0), (220, 200)])

matrix = image.get_affine_transform([(0,0), (240, 0), (240, 240)], [(40,80), (100, 60), (220, 180)])[/mw_shl_code]




 楼主| 发表于 2020-4-5 14:36 | 显示全部楼层
本帖最后由 eagler8 于 2020-12-30 15:27 编辑
  1. #MicroPython动手做(07)——零基础学MaixPy之机器视觉
  2. #实验程序之一:affine 仿射变换(实时缩放)之二

  3. import image
  4. import lcd, sensor
  5. import time

  6. lcd.init()
  7. # lcd.init(type=2, freq=20000000)

  8. sensor.reset(freq=24000000)
  9. sensor.set_pixformat(sensor.RGB565)
  10. sensor.set_framesize(sensor.QVGA)


  11. matrix = image.get_affine_transform([(0,0), (240, 0), (240, 240)], [(40,80), (100, 60), (220, 180)])
  12. print("matrix:")
  13. print("[{:.02f}, {:.02f}, {:.02f}]".format(matrix[0], matrix[1], matrix[2]))
  14. print("[{:.02f}, {:.02f}, {:.02f}]".format(matrix[3], matrix[4], matrix[5]))
  15. print("[{:.02f}, {:.02f}, {:.02f}]".format(matrix[6], matrix[7], matrix[8]))


  16. try:
  17.     del img
  18.     del img2
  19. except Exception:
  20.     pass

  21. img2 = image.Image(size=(320, 240))
  22. img2.pix_to_ai()
  23. flag = False
  24. while 1:
  25.     img = sensor.snapshot()

  26.     image.warp_affine_ai(img, img2, matrix)

  27.     img2.ai_to_pix()
  28.     if flag:
  29.         lcd.display(img2)
  30.     else:
  31.         lcd.display(img)
  32.     flag = not flag
  33.     time.sleep_ms(300)
复制代码


 楼主| 发表于 2020-4-5 14:37 | 显示全部楼层
08.jpg
 楼主| 发表于 2020-4-5 14:43 | 显示全部楼层
12.gif
 楼主| 发表于 2020-4-5 14:50 | 显示全部楼层
13.jpg

点1, 2 和 3 (在图一中形成一个三角形) 与图二中三个点一一映射, 仍然形成三角形, 但形状已经大大改变. 如果我们能通过这样两组三点求出仿射变换 (你能选择自己喜欢的点), 接下来我们就能把仿射变换应用到图像中所有的点。
 楼主| 发表于 2020-4-5 15:25 | 显示全部楼层
本帖最后由 eagler8 于 2020-12-30 15:28 编辑

#MicroPython动手做(07)——零基础学MaixPy之机器视觉
#实验程序之二:image deal 图像处理(深色浮雕)

  1. #MicroPython动手做(07)——零基础学MaixPy之机器视觉
  2. #实验程序之二:image deal 图像处理(深色浮雕)

  3. import sensor
  4. import image
  5. import lcd
  6. import time

  7. lcd.init(freq=15000000)
  8. sensor.reset()
  9. sensor.set_pixformat(sensor.RGB565)
  10. sensor.set_framesize(sensor.QVGA)
  11. sensor.run(1)
  12. origin = (0,0,0, 0,1,0, 0,0,0)
  13. edge = (-1,-1,-1,-1,8,-1,-1,-1,-1)
  14. sharp = (-1,-1,-1,-1,9,-1,-1,-1,-1)
  15. relievo = (2,0,0,0,-1,0,0,0,-1)

  16. tim = time.time()
  17. while True:
  18.     img=sensor.snapshot()
  19.     img.conv3(edge)
  20.     lcd.display(img)
  21.     if time.time() -tim >10:
  22.         break
  23. tim = time.time()
  24. while True:
  25.     img=sensor.snapshot()
  26.     img.conv3(sharp)
  27.     lcd.display(img)
  28.     if time.time() -tim >10:
  29.         break
  30. tim = time.time()
  31. while True:
  32.     img=sensor.snapshot()
  33.     img.conv3(relievo)
  34.     lcd.display(img)
  35.     if time.time() -tim >10:
  36.         break

  37. lcd.clear()
复制代码



 楼主| 发表于 2020-4-5 15:27 | 显示全部楼层
14.jpg
 楼主| 发表于 2020-4-5 15:35 | 显示全部楼层
18.gif
 楼主| 发表于 2020-4-5 18:08 | 显示全部楼层
image deal 图像处理
读取图片(或者实时动态摄像),对像素点任意操作并生成图片,如对像素点进行ARGB的分解,或者将ARGB恢复成像素值,对每个像素点进行修改转换等等。
(Read the image, any operation on the pixels to generate the picture. If the pixel of ARGB decomposition or ARGB back into pixel values, modify the conversion, and so each pixel.)

发表于 2020-4-17 21:23 | 显示全部楼层
非常详细的学习教程,谢谢分享。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 10:16 , Processed in 0.109879 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表