『OpenCV3 × C++』基础数据结构Mat
2018-06-29 14:58
543 查看
cv的Mat结构为图像存储基础数据结构,下面的代码显示了:
创建空的Mat对象
初始化Mat对象方法,以及多通道Mat初始化方法
读取图像为Mat
拷贝Mat副本 vs 拷贝Mat数据头(相当于python的别名)
图像数据格式转换
创建空的Mat对象
初始化Mat对象方法,以及多通道Mat初始化方法
读取图像为Mat
拷贝Mat副本 vs 拷贝Mat数据头(相当于python的别名)
图像数据格式转换
# include <iostream> # include <opencv2/core.hpp> # include <opencv2/highgui.hpp> cv::Mat function() { // 创建图像 // 长500,宽500,单通道8bit无符号整型,初始值50 cv::Mat ima(500, 500, CV_8U, 50); // 返回图像 return ima; } int main() { // _____创建图像_____ cv::Mat image1(240, 320, CV_8U, 100); // 初始值100的Mat cv::imshow("Image", image1); cv::waitKey(0); // 等待按键 image1.create(200, 200, CV_8U); // 创建新的Mat,未初始化 image1 = 200; // 初始化之 cv::imshow("Image",image1); cv::waitKey(0); // RGB通道次序,即下Mat为红色 cv::Mat image2(240, 320, CV_8SC3, cv::Scalar(0, 0, 255)); // 等价如下写法 // cv::Mat image2(cv::Size(240, 320), CV_8SC3); // image2 = cv::Scalar(0, 0, 255); cv::imshow("Image", image2); cv::waitKey(0); // _____读取图像_____ cv::Mat image3 = cv::imread("test.jpg"); // 下面的图像指向同一数据块 cv::Mat image4(image3); image1 = image3; // 下面的图像会拷贝副本 image3.copyTo(image2); cv::Mat image5 = image3.clone(); // image3翻转后存入image3中 // >0水平翻转,=0竖直翻转,<0同时翻转 cv::flip(image3, image3, 1); cv::imshow("image3", image3); cv::imshow("image1", image1); cv::imshow("image2", image2); cv::imshow("image4", image4); cv::imshow("image5", image5); cv::waitKey(0); cv::Mat gray = function(); cv::imshow("Image", gray); cv::waitKey(0); image1 = cv::imread("test.jpg", CV_LOAD_IMAGE_GRAYSCALE); image1.convertTo(image2, CV_32F, 1 / 255.0, 0.0); // 转换成[0,1]浮点图像 cv::imshow("Image", image1); cv::waitKey(0); return 0; }
相关文章推荐
- 【VS开发】C++ opencv Mat基础
- opencv学习_4(opencv基础数据结构 CvPoint & CvSize & CvRect & CvScalar & CvArr & CvMat)
- 算法与数据结构基础 -- 排序 (C++实现)
- Matlab程序 转C++/Opencv基于Mat 不可不知的17个函数
- C++ 中 opencv Mat 变量的常见运算
- OpenCV学习C++接口 Mat像素遍历详解
- opencv的三种数据结构CvMat IplImage Mat 读取示例
- C++vector<vector<double>> and opencv Mat
- Matlab程序 转C++/Opencv基于Mat 不可不知的17个函数
- 算法与数据结构基础1:C++实现动态数组
- OpenCV数据结构之Mat
- opencv中C接口与C++接口的相互转换(Mat 和 CvMat,IplImage相互转化)
- 基础学习笔记之opencv(8):Mat - 基本图像容器
- C++基础数据结构STL
- opencv基础知识------IplImage, CvMat, Mat 的关系和相互转换
- 条形码识别项目中C++以及OpenCV基础知识
- OpenCV学习笔记(三十九)——再谈OpenCV的数据结构,Mat是如此强大
- 算法与数据结构基础11:C++实现——二拆搜索树节点删除
- opencv学习_4(opencv基础数据结构 CvPoint & CvSize & CvRect & CvScalar & CvArr & CvMat)
- C++读写txt文件方式以及基于opencv的Mat数据类型读写txt文件类型