OpenCV线性变换、分段线性变换 C++代码实例 及效果图

Table of Contents

 

线性变换公式

C++代码

程序运行结果

线性变换实验

对图片进行分段线性变换


线性变换公式

dstImage = alpha * srcImage + beta【类比于数学中的y = ax + b】

C++代码

#include <opencv2/opencv.hpp>  //头文件
#include <iostream>
using namespace cv;  //包含cv命名空间
using namespace std;

int main(int argc, char ** argv)
{
	Mat srcImage, dstImage;
	//【1】线性变换实验
	srcImage = (Mat_<uchar>(2, 2) << 0, 200, 23, 4);	//创建一个2*2的数组,类型为unsigned char
	//输出数组内容
	cout << "src: " << endl;
	for (int r = 0; r < srcImage.rows; r++)
	{
		for (int c = 0; c < srcImage.cols; c++){
			cout << (int)srcImage.at<uchar>(r, c) << ",";	//第r行c列的值
		}
		cout << endl;
	}

	//设定变量
	float alpha = 2.0;
	float beta = 0;

	//线性变换,如下三个方法都可行,任选一个
	//OpenCV对大于255的数字采取的策略是全部设定为255,即400->255, 300->255, 510->255
	//method#1:
	//convertTo这个函数的会对结果进行类型转换,将其转为第二个参数所指定的类型
	//s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值