opencv mat的常用操作
#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; int main() { Mat src; //原图 src = imread(".//pic//test.jpg",IMREAD_UNCHANGED); if (src.empty()) { cout << "can not load image" << endl; return -1; } namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input", src); //创建Mat //Mat dst; //dst = Mat(src.size(), src.type()); ////RGB三通道赋值 //dst = Scalar(0, 0, 0); //namedWindow("output", CV_WINDOW_AUTOSIZE); //imshow("output", dst); //copy的使用 Mat dst; //src.copyTo(dst); //色彩空间的转换 cvtColor(src, dst, CV_BGR2GRAY); namedWindow("output", CV_WINDOW_AUTOSIZE); imshow("output", dst); printf("输入图像的通道数:%d\n", src.channels()); printf("输出图像的通道数:%d\n", dst.channels()); //输出某一个点的像素 int cols = dst.cols; int rows = dst.rows; printf("rows:%d cols:%d\n", cols, rows); const uchar* firstRow = dst.ptr<uchar>(0); printf("first pixel value: %d\n", firstRow[0]); //8:每个通道占8位 //U:表示无符号 //C:表示char类型 //3:表示通道数目是3 Mat M(3, 3, CV_8UC3, Scalar(0, 0, 255)); Mat m1; m1.create(src.size(), src.type()); m1 = Scalar(0, 0, 255); //定义卷积核 Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 6, -1, 0, -1, 0); //定义对角矩阵 Mat m2 = Mat::eye(2, 2, CV_8UC1); waitKey(0); return 0; }
分类:
openCV图像分析基础
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· https证书一键自动续期,帮你解放90天限制
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· 推荐几个不错的 Linux 服务器管理工具
· C# 开发工具Visual Studio 介绍
2017-12-06 ARM嵌入式复习
2017-12-06 4.C语言文件操作
2017-12-06 3.c语言结构体成员内存对齐详解
2017-12-06 2.堆.栈和内存映射详解
2017-12-06 1.C语言指针学习之外挂篇
2015-12-06 sqldeveloper