银行卡矫正(透视变换)

项目介绍–银行卡矫正(透视变换)

			实现银行卡变换形状,给图片拉正

示例图:

在这里插入图片描述

实现思路:

1.读取图片

2.灰度图

3.canny边缘检测

4.霍夫直线检测

5.画出找到的四条直线

6.判断四条直线位置

7.求四条直线交点

8.获取交点存为矩阵

9.新矩阵的四个顶点

10.进行透视变换

代码实现:

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;

int main()
{
	/*
	一般检测边缘  在灰度图
	检测检测轮廓   在二值图
	*/


	Mat srcimg = imread("C:\\Users\\20435\\Desktop\\tu\\1.jpg");
	imshow("【原图】", srcimg);


	Mat grayimg;
	cvtColor(srcimg, grayimg, COLOR_RGB2GRAY);
	imshow("【灰度】", grayimg);

	Mat bimg, gauess_img, bf_img,kernel;
	GaussianBlur(grayimg, gauess_img, Size(5, 5), 0, 0);
	imshow("高斯", gauess_img);

	/*  2图用到的二值化  THRESH_BINARY_INV  */
	//adaptiveThreshold(grayimg, bimg, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY_INV, 501, 0);
	//imshow("二值图", bimg);


	Mat canny_img;
	//小于a不是边缘   大于b是边缘   a-b根据连通性 决定是否为边缘
	Canny(gauess_img, canny_img, 80, 120);
	imshow("边缘", canny_img);



	Mat dd_img;
	dilate(canny_img, dd_img, kernel, Point(-1, -1));
	imshow("边缘后膨胀", dd_img);

	//检测完边缘过后  尝试检测
### 图像矫正中的透视变换 对于图像的透视变换矫正,通常涉及到四个角点的选择以及目标位置的定义。通过这一步骤,能够将倾斜或者变形的对象拉正到标准视角下[^1]。 在具体操作上,可以借助于OpenCV库完成这一过程。首先需要检测源图上的四个顶点坐标,并指定转换后的对应位置。之后创建一个`cv2.getPerspectiveTransform()`函数获取变换矩阵,最后调用`cv2.warpPerspective()`应用该矩阵执行实际的映射工作[^2]。 下面是一个简单的Python代码片段用于演示如何使用OpenCV来进行透视变换: ```python import cv2 import numpy as np def perspective_transform(image, src_points, dst_points): M = cv2.getPerspectiveTransform(src_points, dst_points) transformed_image = cv2.warpPerspective(image, M, (image.shape[1], image.shape[0])) return transformed_image # 假设已知原图中四边形的四个顶点坐标分别为pts_src, # 并希望将其变为矩形区域,则dst应设置为目标矩形的四个角落。 pts_src = np.float32([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) pts_dst = np.float32([[0, 0], [width, 0], [0, height], [width, height]]) result_img = perspective_transform(img, pts_src, pts_dst) cv2.imshow('Original Image', img) cv2.imshow('Warped Image', result_img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 此段程序展示了基本流程:先计算出由给定的两组点集决定的投影变换关系;再以此为基础调整整个画面的内容布局,从而达到校准目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yikang.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值