当前位置: 首页 > news >正文

open cv学习 (四)图像的几何变换

图像的几何变换

demo1
# dsize实现缩放
import cv2
img = cv2.imread("./cat.jpg")
dst1 = cv2.resize(img, (100, 100))
dst2 = cv2.resize(img, (400, 400))
# cv2.imshow("img", img)
# cv2.imshow("dst1", dst1)
# cv2.imshow("dst2", dst2)
cv2.imwrite("./cat01.png", dst1)
cv2.waitKey()
cv2.destroyAllWindows()
demo2
# fx 和 fy 参数实现缩放
import cv2
img = cv2.imread("./cat.jpg")
dst3 = cv2.resize(img, None, fx=1/3, fy=1/2)
dst4 = cv2.resize(img, None, fx=2, fy=2)
cv2.imshow("img", img)
cv2.imshow("dst3", dst3)
cv2.imshow("dst4", dst4)
cv2.waitKey()
cv2.destroyAllWindows()
demo3
# 翻转
import cv2
img = cv2.imread("./cat01.png")
dst1 = cv2.flip(img, 0)
dst2 = cv2.flip(img, 1)
dst3 = cv2.flip(img, -1)
cv2.imshow("dst1", dst1)
cv2.imshow("dst2", dst2)
cv2.imshow("dst3", dst3)
cv2.waitKey()
cv2.destroyAllWindows()
demo4
# 图像平移
import cv2
import numpy as np
img = cv2.imread("./cat01.png")
# 读取像素行数
rows = len(img)
# 读取像素列数
cols = len(img[0])M = np.float32([[1, 0, 0], [0, 1, -50]])
dst = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
demo5
import cv2
img = cv2.imread("./cat01.png")
# 读取像素行数
rows = len(img)
# 读取像素列数
cols = len(img[0])center = (rows/2, cols/2)
M = cv2.getRotationMatrix2D(center, 30, 0.8)
dst = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
demo6
import cv2
import numpy as np
img = cv2.imread("./cat01.png")
# 读取像素行数
rows = len(img)
# 读取像素列数
cols = len(img[0])
p1 = np.zeros((3, 2), np.float32)
# 左上角坐标
p1[0] = [0, 0]
# 右上角坐标
p1[1] = [cols - 1, 0]
# 左下角坐标
p1[2] = [0, rows - 1]p2 = np.zeros((3, 2), np.float32)
p2[0] = [50, 0]
p2[1] = [cols - 1, 0]
p2[2] = [0, rows - 1]
M = cv2.getAffineTransform(p1, p2)
dst = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
demo7
import cv2
import numpy as np
img = cv2.imread("./cat01.png")rows = len(img)
cols = len(img[0])p1 = np.zeros((4, 2), np.float32)
p1[0] = [0, 0]
p1[1] = [cols - 1, 0]
p1[2] = [0, rows - 1]
p1[3] = [cols - 1, rows - 1]
p2 = np.zeros((4, 2), np.float32)
M = cv2.getPerspectiveTransform(p1, p2)
dst = cv2.warpPerspective(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
http://www.lryc.cn/news/134523.html

相关文章:

  • matlab 检测点云中指定尺寸的矩形平面
  • HCIP——STP配置案例
  • JCTools Mpsc源码详解(二) MpscArrayQueue
  • 前端面试的性能优化部分(13)每天10个小知识点
  • C++ STL无序关联式容器(详解)
  • Python爬虫解析工具之xpath使用详解
  • Linux防火墙报错:Failed to start firewalld.service Unit is masked
  • 前端面试:【Vuex】Vue.js的状态管理利器
  • Kotlin协程runBlocking并发launch,Semaphore同步1个launch任务运行
  • c++ Union之妙用
  • JSON的处理
  • matlab使用教程(20)—插值基础
  • Python功能制作之简单的3D特效
  • leetcode-5-最长回文串
  • 二、Oracle 数据库安装集
  • 【Python】Python中的常用函数及用法
  • 基于JavaEE的ssm公司员工信息管理系统的设计与实现
  • cornerstoneJS加载图片(base、矩阵)
  • 3.Trunc截断函数用法
  • 腾讯云 CODING 荣获 TiD 质量竞争力大会 2023 软件研发优秀案例
  • VSCode如何为远程安装预设(固定)扩展
  • 一文解析HTTP与HTTPS,它们的区别和联系
  • Faster RCNN网络数据流总结
  • 拒绝摆烂!C语言练习打卡第五天
  • 关于LambdaQueryWrapper.or()导致错误
  • Day17-Node后端身份认证-JWT
  • onvif中imaging setting图像画质总结!
  • not in效率低(MYSQL的Not IN、not EXISTS如何优化)
  • 微信小程序拉起支付报: 调用支付JSAPI缺少参数: total_fee
  • Thinkphp6 如何 生成二维码