1. 图片加载、灰度图、 显示和保存

cv::Mat img = cv::imread("01.jpg");
//cv::Mat img = cv::imread("01.jpg", 0);  //以灰度图读入cv::cvtColor(img, img, cv::COLOR_BGR2GRAY);cv::imshow("img_show", img);
cv::waitKey();cv::imwrite("save.jpg", img);

2. 图片宽、高、通道模式、平均值获取

cv::Mat img = cv::imread("01.jpg");int width = img.cols;
int height = img.rows;
int channel_model = img.channels();cv::Scalar tempVal = cv::mean(img);
float mean_B = tempVal.val[0];
float mean_G = tempVal.val[1];
float mean_R = tempVal.val[2];

3. 创建指定大小,指定通道类型的空图像

cv::Mat img = cv::imread("01.jpg");cv::Mat img_new1(300, 500, CV_8UC3);  //高300,宽500
cv::Mat img_new2(img.size(), CV_8UC1);

4. 访问和操作图像像素

int point_height = 50;
int point_width = 100;cv::Mat img = cv::imread("01.jpg");img.at<cv::Vec3b>(point_height, point_width)[0] = 255;
int point_value_B = img.at<cv::Vec3b>(point_height, point_width)[0];cv::Mat img_gray;
cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY);int point_value_gray = img_gray.at<uchar>(point_height, point_width);img_gray.convertTo(img_gray, CV_32F);  //转为float类型
float point_value_gray_f = img_gray.at<float>(point_height, point_width);

5. 图像通道分离和合并

cv::Mat img = cv::imread("01.jpg");std::vector<cv::Mat> rgb_images;
cv::split(img, rgb_images);cv::Mat B = rgb_images[0];
cv::Mat G = rgb_images[1] ;
cv::Mat R = rgb_images[2];cv::Mat merged_img;
cv::merge(rgb_images, merged_img);

6. 在图像上输出文字

cv::Mat img = cv::imread("01.jpg");
cv::putText(img, "Text", cv::Point(50, 100), 0, 2, cv::Scalar(0, 0, 255));

7. 图像缩放

cv::Mat img = cv::imread("01.jpg");
cv::resize(img, img, cv::Size(0.5 * img.cols , 0.5 * img.rows), 0, 0, cv::INTER_CUBIC);

8. 查找非零值像素位置

// Created by 牧野 CSDN https://blog.csdn.net/dcrmg
cv::Mat img = cv::imread("01.jpg", 0);
std::vector<cv::Point> locations;
cv::findNonZero(img, locations); //查找非0像素位置for (int i = 0; i < locations.size(); i++) {cv::Point pt = locations[i];int pt_value = img.at<uchar>(pt);std::cout<<pt_value<<std::endl;
}

9. 图像阈值分割、 二值化

cv::Mat img = cv::imread("01.jpg", 0);
cv::Mat img_binary;
cv::threshold(img, img_binary, 100, 255, cv::THRESH_BINARY); //指定阈值分割cv::Mat img_Otsu;
cv::threshold(img, img_Otsu, 0, 255, cv::THRESH_OTSU); //大津阈值

10. 图像裁剪、ROI

cv::Mat img = cv::imread("01.jpg");
cv::Rect rect(100, 200, 500, 300);  //left-up point x, left-up point y, width, height
cv::Mat roi = img(rect).clone();

OpenCV Mat 图像处理基本操作相关推荐

  1. Qt:OpenCV—Q图像处理基本操作(Code)

    原文链接:http://www.cnblogs.com/emouse/archive/2013/03/31/2991333.html 作者写作一系列:http://www.cnblogs.com/em ...

  2. opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑

    opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑 1.本实验要完成的功能:利用opencv将原图像灰度处理,然后显示在label上 2.图像处理程序: ...

  3. 【OpenCv】c++ 入门认识 Mat 类,单通道 Mat 的基本操作

    文章目录 前言 Mat 类 Mat 类的构造方式 Mat 基本操作 单通道 Mat 的基本操作 使用成员变量 rows 和 cols 获取矩阵的行数和列数 使用成员函数 size() 来获取矩阵的尺寸 ...

  4. 微软符号服务器opencv的符号,Opencv Mat类详解和用法1

    Mat OpenCV 自 2001 年出现以来.在那些日子里库是围绕C接口构建的.在那些日子里,他们使用名为IplImage C 的结构在内存中存储图像.这是您将在大多数较旧的教程和教材中看到的那个. ...

  5. OpenCV实战(1)——OpenCV与图像处理基础

    OpenCV实战(1)--OpenCV与图像处理基础 0. 前言 1. OpenCV 基础 1.1 安装 OpenCV 1.2 OpenCV 主要模块 1.3 使用 Qt 进行 OpenCV 开发 2 ...

  6. OpenCV Mat类详解

    光心:每个透镜主轴上都有一个特殊点,凡是通过该点的光,其传播方向不变,这个点叫光心. 光线经过透镜后不会发生折射,仍然沿原方向射出. 基础矩阵(Fundamental matrix)是一个3×3的矩阵 ...

  7. OpenCV Mat类详解和用法(官网原文)

    参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...

  8. OpenCV与图像处理学习六——图像形态学操作:腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽

    OpenCV与图像处理学习六--图像形态学操作:腐蚀.膨胀.开.闭运算.形态学梯度.顶帽和黑帽 四.图像形态学操作 4.1 腐蚀和膨胀 4.1.1 图像腐蚀 4.1.2 图像膨胀 4.2 开运算与闭运 ...

  9. OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换

    OpenCV与图像处理学习五--图像滤波与增强:线性.非线性滤波.直方图均衡化与Gamma变换 三.图像滤波与增强 3.1 线性滤波 3.1.1 方框滤波 3.1.2 均值滤波 3.1.3 高斯滤波 ...

最新文章

  1. C++ dll 动态链接库的创建与调用
  2. Rsync+Inotify-tools实现数据实时同步
  3. android系统内置HttpClient库(WebView+ Http(s)URLConnection(ok-http)+ HttpClient(apache-http))
  4. chrome 69 免安装_ElasticSearch安装elasticsearch-head插件
  5. MapReduce过程详解及其性能优化
  6. Java加密与解密的艺术~AES-GCM-NoPadding实现
  7. 无法远程到2008R2的解决方法
  8. java字符串拼接_Java 8中字符串拼接新姿势:StringJoiner
  9. sql 获取当前整点时间,当前时间减去12小时
  10. Excel导入导出SQL server数据库
  11. android中期检查表,基于Android的车载视频播控系统的中期检查表.docx
  12. AI+护肤领域带来的产业价值
  13. vscode下golang build tags
  14. 一些花里胡哨——底盘旋转、闪烁星星
  15. 微信小程序getUserProfile详解
  16. 去除迅雷右侧资源信息栏和迅雷广告,以及迅雷的速度限制修改
  17. python是什么语言编写的程序称为_Python 学习(一)【Python语言简介-Python是什么】...
  18. 低通,高通,带通,带阻滤波器的定义
  19. 【LOJ #6617】「THUPC 2019」摆家具 / furniture(DP / BSGS / 矩阵快速幂)
  20. 考研数学-基础阶段几何串讲1主讲人:王淳 -2020年06月26日

热门文章

  1. Erika企业版实时操作系统
  2. 巧解求索书局WIFI密码
  3. 龙卷风网络收音机v2.6绿色版
  4. 首次为安装计算机做准备后蓝屏重启,新装电脑蓝屏死机自动重启,问题在哪里?...
  5. 微型计算机原理_课后答案,微机原理课后习题标准答案
  6. 工人物语5战役攻略_《工人物语5》菜单详解攻略
  7. 斑马快传,高效安全的内外网文件传输软件,可穿透网闸服务器杀毒。
  8. 微信小程序+Django—登录界面交互
  9. 什么是域名301重定向?
  10. 天将降大任于斯人也。。。。。。