<LearnOpenCV(3) C++>图像矩阵的初始化操作

矩阵初始化的一些操作

记录一点矩阵初始化的操作

纯色矩阵

了解下空间申请

构造函数

dst = Mat(src.size(), src.type());
dst = Scalar(250, 250,100);

在这里插入图片描述

creat()

dst6.create(src.size(), src.type());
dst6 = Scalar(250, 250, 100);

在这里插入图片描述

图像复制

copyTo()

Mat dst1 = src.clone();

在这里插入图片描述

mat.clone()

Mat dst2;
src.copyTo(dst2);

在这里插入图片描述

格式转换

Mat dst3;
cvtColor(src, dst3, COLOR_BGR2GRAY);

在这里插入图片描述

常规申请

Mat dst4(30, 30, CV_8UC3, Scalar(250, 250, 100));
Mat dst5(30, 30, CV_8UC1, Scalar(127));
Mat dst11(src.rows, src.cols, CV_8UC3, src.data);

在这里插入图片描述

滤波核类型的矩阵构造

<LearnOpenCV(2)>中滤波的函数实现)

Mat filtered;
Mat dst7 = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
filter2D(src, filtered, -1, dst7);

zeros/ones

Mat dst9 = Mat::zeros(20, 20, CV_16FC1);
Mat dst10 = Mat::ones(20, 20, CV_16FC1);

在这里插入图片描述

代码

//常规矩阵初始化操作
# include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>

using namespace std;
using namespace cv;


int main()
{
	Mat src = imread("girl4.jpg", IMREAD_COLOR);
	if (src.empty()) return -1;
//
	Mat dst;
	dst = Mat(src.size(), src.type());
	dst = Scalar(250, 250,100);
	Mat dst6;

	dst6.create(src.size(), src.type());
	dst6 = Scalar(250, 250, 100);
	// 图像复制
	Mat dst1 = src.clone();
	Mat dst2;
	src.copyTo(dst2);

	//图像格式转换
	Mat dst3;
	cvtColor(src, dst3, COLOR_BGR2GRAY);
	
	//图像内存申请(指明尺寸和数据类型)
	Mat dst4(30, 30, CV_8UC3, Scalar(250, 250, 100));
	Mat dst5(30, 30, CV_8UC1, Scalar(127));
	Mat dst11(src.rows, src.cols, CV_8UC3, src.data);
	//滤波核类型的构造
	Mat filtered;
	Mat dst7 = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
	filter2D(src, filtered, -1, dst7);
	//zeros/ones
	Mat dst9 = Mat::zeros(3, 3, CV_16FC1);
	Mat dst10 = Mat::ones(3, 3, CV_16FC1);
	cout << dst9 << endl;
	cout << "//" << endl;
	cout << dst10 << endl;
	imshow("Matin", src);
	imshow("Mat", d1st);
	imshow("dst1", dst1);
	imshow("dst2", dst2);
	imshow("dst3", dst3);
	imshow("dst4", dst4);
	imshow("dst5", dst5);
	imshow("dst11", dst11);
	imshow("dst6", dst6);
	waitKey(0);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wdmcs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值