首页 > 其他分享 >利用OpenCV和Numpy实现图像校正

利用OpenCV和Numpy实现图像校正

时间:2024-12-12 18:56:19浏览次数:7  
标签:校正 img 变换 points1 图像 cv2 OpenCV 透视 Numpy

实验原理

图像透视变换是一种几何变换,它能够将图像中的点从一个平面映射到另一个平面,通常用于校正图像中的透视失真或者创建特殊的视觉效果。在计算机视觉和图像处理中,透视变换可以通过找到一组对应点(原图中的点和目标图中的点)并计算透视变换矩阵来实现。

透视变换的关键步骤:

  1. 选择对应点:在原图和目标图中选择四个对应点,这些点通常是图像中的角点或者具有明显特征的点。
  2. 计算透视变换矩阵:使用OpenCV库中的cv2.getPerspectiveTransform函数,根据选定的对应点计算透视变换矩阵。
  3. 应用透视变换:使用cv2.warpPerspective函数,将透视变换矩阵应用到原图上,得到变换后的图像。

实验代码

以下是实现图像透视变换的Python代码,使用了OpenCV和Numpy库。

import cv2
import numpy as np
#导入图片
img = cv2.imread('./youhua.png')

#取出四个顶点的坐标
points1 = np.float32([[175,142],[621,35],[89,491],[652,546]])

#确定好对应的坐标,也就是目标图中的四个点
points2 = np.float32([[min(points1[:,0]),min(points1[:,1])], #左上角
                     [max(points1[:,0]),min(points1[:,1])], #右上角
                      [min(points1[:, 0]), max(points1[:, 1])],  # 左下角
                     [max(points1[:, 0]), max(points1[:, 1])]]   #右下角
                     )
#生成变换矩阵
M = cv2.getPerspectiveTransform(points1,points2)
#透视变换
img_PerspectiveTransform = cv2.warpPerspective(img,M,(img.shape[1],img.shape[0]))

cv2.imshow('img',img)
cv2.imshow('img_PerspectiveTransform',img_PerspectiveTransform)
cv2.waitKey(0)

实验结果:

原图:

透视变换后:

标签:校正,img,变换,points1,图像,cv2,OpenCV,透视,Numpy
From: https://blog.csdn.net/mi_shu_zi/article/details/144433645

相关文章

  • opencv - py_photo - py_inpainting 图像修复
    文章目录图像修复目标基础知识代码其他资源练习图像修复目标在本章中,我们将学习如何通过一种称为修复的方法去除旧照片中的小噪音、笔触等我们将看到OpenCV中的修复功能。基础知识你们大多数人家里都会有一些旧的劣化照片,上面有一些黑点、一些笔触等。你有......
  • Python OpenCV按照像素点图片切割
    图像分割是从图像处理到图像分析的关键步骤,在目标检测、特征提取、图像识别等领域具有广泛应用。OpenCV是一个强大的计算机视觉库,提供了多种图像分割方法。本文将详细介绍如何使用Python和OpenCV进行基于像素点的图像分割,包括阈值分割、自适应阈值分割、Otsu's二值化、分水岭算法......
  • OpenCV的简单函数
    一、二值化(threshold)1.二值化图二值化图:就是将图像中的像素改成只有两种值,其操作的图像必须是灰度图。2.实现方法,函数阈值法(THRESH_BINARY)反阈值法(THRESH_BINARY_INV)截断阈值法(THRESH_TRUNC):低阈值零处理(THRESH_TOZERO)超阈值零处理(THRESH_TOZERO_INV)OTSU阈......
  • 安装OpenCV时遇到pip install指令无效的问题
    解决方法:将pipinstallopencv-python改为pip3installopencv-python,即可成功安装。pip和pip3的区别概念方面pip是Python的包管理工具,用于安装和管理Python软件包。它默认是关联到Python2.x版本(如果系统中同时安装了Python2和Python3)。pip3专门用于管理Python3.x版......
  • Numpy矩阵运算笔记
    此篇文章在2022年10月28日被记录Numpy矩阵基本运算1、python矩阵操作引入库:importnumpyasnp创建一个二维矩阵:>>>a=np.mat([[1,2,3],[4,5,6]])打印a矩阵:>>>amatrix([[1,2,3],[4,5,6]])打印a矩阵形状:>>>a.shape(2,3)转置a矩阵:......
  • Numpy入门学习笔记
    此篇文章在2022年10月21日被记录Numpy简单应用============创建一个一维数组a=np.array([0,1,2,3,4])b=np.array((0,1,2,3,4))c=np.arange(5)d=np.linspace(0,2*np.pi,5)print(a)>>>[01234]print(b)>>>[01234]print(c)>>>[0......
  • 【opencv基础】resize使用的问题
    前言最近语义分割任务的gt文件resize前后标签数值发生了错误,最后发现是resize函数调用过程中参数调用出现错误,主要是参数顺序,记录之。问题分析源码 结果: 虽然使用最近邻插值,但是resize后和预想的数值不一致,多方分析、调试,最后小伙伴发现是调用函数参数不正确。opencv官......
  • Python+OpenCV系列:绘制图形和文字
    绘制图形和文字1.基本绘图函数简介2.绘制示例代码2.1创建一个空白图像2.2绘制基本图形1.绘制直线2.绘制矩形3.绘制圆4.绘制椭圆2.3添加文字3.显示与保存图像4.扩展应用总结在图像处理领域,绘制基本图形和文字是一个常见需求,例如标记对象、绘制边界框或添......
  • 31-OpenCVSharp--特征描述之HOG描述符详细使用方法
    专栏地址:《OpenCV功能使用详解200篇》《OpenCV算子使用详解300篇》《Halcon算子使用详解300篇》内容持续更新,欢迎点击订阅1.HOG特征描述符算法概述HOG(HistogramofOrientedGradients)是一种常用于物体检测(如行人检测)的特征描述符,它通过捕捉图像中局部区域的......
  • 28-OpenCVSharp--图像ROI裁剪详细使用方法
    专栏地址:《OpenCV功能使用详解200篇》《OpenCV算子使用详解300篇》《Halcon算子使用详解300篇》内容持续更新,欢迎点击订阅OpenCVSharp图像裁剪selectROI算法详解在计算机视觉中,图像裁剪是非常基础的操作之一,常常用于从图像中提取感兴趣区域(RegionofInter......