opencv 形状变换 图像阈值 仿射变换

本文档介绍了使用OpenCV进行图像变换,包括仿射变换、旋转、透视变换、极坐标变换等,并展示了如何应用自适应阈值、颜色变换、距离变换等图像处理技术。
摘要由CSDN通过智能技术生成
#include "stdafx.h"
#include "Opencv_ImageTransformations.h"
using namespace cv;

Opencv_ImageTransformations::Opencv_ImageTransformations()
{
}


Opencv_ImageTransformations::~Opencv_ImageTransformations()
{
}
void Opencv_ImageTransformations::Opencv_convertMaps(Mat map1, Mat map2, Mat &dstmap1, Mat &dstmap2)
{
	//  将图像从一种数据类型转换到另一种数据类型
	// 输入的map1的数据类型必须是:CV_16SC2, CV_32FC1, or CV_32FC2 . 
	// 输入的map2的数据类型必须是:CV_16UC1, CV_32FC1或者是一个空矩阵. 
	// dstmap1type 第一个输出的map的数据类型是:CV_16SC2, CV_32FC1, or CV_32FC2 
	convertMaps(map1, map2, dstmap1, dstmap2, CV_32FC1);
}
void Opencv_ImageTransformations::Opencv_getAffineTransform(Mat map1, Mat &dstmap1, bool bRotate)
{
	if (bRotate)
	{
		Point2f srcTri[3];
		Point2f dstTri[3];
		srcTri[0] = Point2f(0, 0);
		srcTri[1] = Point2f(map1.cols - 1, 0);
		srcTri[2] = Point2f(0, map1.rows - 1);

		dstTri[0] = Point2f(map1.cols*0.0, map1.rows*0.33);
		dstTri[1] = Point2f(map1.cols*0.85, map1.rows*0.25);
		dstTri[2] = Point2f(map1.cols*0.15, map1.rows*0.7);
		Mat  dstmap = getAffineTransform(srcTri, dstTri);
		warpAffine(map1, dstmap1, dstmap, map1.size());
	}
	else
	{
		Mat  dstmap = getRotationMatrix2D(Point(map1.cols / 2, map1.rows/2), 270, 1);
		warpAffine(map1, dstmap1, dstmap, map1.size());
	}

}
void Opencv_ImageTransformations::Opencv_getDefaultNewCameraMatrix()
{

}
void Opencv_ImageTransformations::Opencv_getPerspectiveTransform(Mat map1, Mat &dstmap1)
{
	Point2f srcTri[4];
	Point2f dstTri[4];
	srcTri[0] = Point2f(0, 0);
	srcTri[1] = Point2f(map1.cols - 1, 0);
	s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值