OpenCV 访问Mat 像素
场景
在进行烟雾检测的过程中,需要访问Mat指定区域的像素值,然后判断是否符合烟雾的像素特征(当然,在网上查询到的烟雾像素特征,实际上,并没有正确识别出烟雾),可通过如下的方式进行操作
int similarDegree = 0;
int channel = srcMat.channels();
for (int i=info.smokeLeftTopPos.y; i<maxHeight; i++)
{
for (int j=info.smokeLeftTopPos.x; j<maxWidth; j++)
{
int r = srcMat.at<uchar>(i, j*channel);
int g = srcMat.at<uchar>(i, j*channel+1);
int b = srcMat.at<uchar>(i, j*channel+2);
if ((r>=200) && (g>=200) && (b<=180))
{
similarDegree++;
}
}
}
当然在实际的应用过程中,像素的值很可能不是无符号字符型,还有可能是浮点型,短整型等,可以使用如下的方式进行判断:
int type = 0;
switch(srcMat.type())
{
case CV_8UC3:
type = 0;
break;
case CV_8SC3:
type = 1;
break;
case CV_16UC3:
type = 2;
break;
case CV_16SC3:
type = 3;
break;
case CV_32SC3:
type = 4;
break;
case CV_32FC3:
type = 5;
break;
case CV_64FC3:
type = 6;
break;
}
参考
http://www.cnblogs.com/wangguchangqing/p/4016179.html
本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1946642,如需转载请自行联系原作者
OpenCV 访问Mat 像素相关推荐
- android都图片mat_计算机视觉 OpenCV Android | Mat像素操作(图像像素的读写、均值方差、算术、逻辑等运算、权重叠加、归一化等操作)...
本文目录 1. 像素读写 2. 图像通道与均值方差计算 3. 算术操作与调整图像的亮度和对比度 4. 基于权重的图像叠加 5. Mat的其他各种像素操作 1. 像素读写 Mat作为图像容器,其数据部分 ...
- OpenCV访问Mat图像中每个像素的值
原文:http://blog.csdn.net/xiaowei_cqu/article/details/7771760 matlab中, a=[1,2,3;4,5,6;7,8,9] a(1,2) 第一 ...
- c++版本opencv(04.认识Mat对象-05.Mat对象创建与使用-06.遍历与访问每个像素-)
c++版本opencv(04.认识Mat对象-05.Mat对象创建与使用-06.遍历与访问每个像素-) 一.04.认识Mat对象- 二,05.Mat对象创建与使用- 三,06.遍历与访问每个像素- 来 ...
- 遍历opencv中的mat像素的几种方法和概念
今天在看矩形滤波的时候忽然脑子短路,把一些概念全弄混了,现总结一下,以便下次再混的时候可以参考确认下,自己的理解,有错的地方还请指正. 首先,在Opencv2中基本上都是用的Mat来表示图像了,C++ ...
- c++ opencv数字图像处理:访问图像像素,遍历图像像素
文章目录 前言 一.访问图像像素 1.访问(j,i)处像素 2.例子:在图像中加入白色椒盐噪声 二.遍历图像像素 1.指针扫描 2.opencv自带的卷积运算:filter2D 前言 数字图像处理c+ ...
- OpenCV中6种访问Mat元素的方法
Mat中不管是以at访问还是ptr访问,都是行优先 ,先Y轴后X轴(即先行后列) 1.使用at访问 /* *OpenCV2中Mat的at操作访问矩阵元素 * */#include <highgu ...
- Opencv3编程入门学习笔记(三)之访问图像像素的三种方法
访问图像像素的三种方法:指针访问,迭代器访问,动态地址访问.访问最快的为指针访问,以下算法在几毫秒,但指针访问容易造成内存泄漏:其次为迭代器访问:最后为动态地址访问. 以下程序是根据<OpenC ...
- OpenCV访问像素点的灰度值
1.Mat矩阵数值的存储方式 这里以指针的方式访问图像素为例 (1)单通道 定义一个单通道图像: cv::Mat img_1 = (320, 640, CV_8UC1, Scalar(0)); 对于单 ...
- opencv获取mat的指针_数字图像处理之opencv中Mat数据操作
数字图像处理其实就是处理二维矩阵数据.利用opencv来学习处理算法是一种比较好的方式.学习opencv,主要就是调用其中的图像处理函数来实现各种操作.如果要得到想要的处理结果,还需要对图像处理算法有 ...
最新文章
- spring jpa mysql集群_Spring Boot系列之十四 JPA 连接mycat
- 经典PID控制算法用C语言实现!
- python map reduce filter_Python map, reduce, filter和sorted
- mysql多大_洞悉MySQL底层架构:游走在缓冲与磁盘之间
- 工作75::一直报404
- 石板切割问题c语言_广场地面铺装 仿古石 青石板 板岩 切割岩 冰裂纹压印混凝土地坪...
- Jmeter之测试片段和模块控制器应用
- RPM包实现LAMP
- 直播短视频手机APP应用下载页面静态html网页模板
- 微信小程序 - 展开收缩列表
- 启动转换安装失败 拷贝windows安装文件时出错_在Ubuntu16.04下安装MATLAB2017b
- Ubuntu20.04安装gamit10.7
- python人民币转大写_python实现人民币大写转换
- 怎么用计算机算e的次方,如何在计算器上计算e的x次方?
- mysql链路追踪工具_Molten
- python迭代器是什么_python中什么是迭代器
- latex并排显示表格
- 最短哈密顿环 退火_【CH0103】最短哈密顿路径
- Vue中的视频播放插件( vue-video-player )
- 机器学习相关资料推荐 http://blog.csdn.net/jiandanjinxin/article/details/51130271
热门文章
- 初步学习Django-第一篇:创建项目
- mysqls为node.js而编写的sql语句生成插件 crud for mysql.
- 9.6-9.7 awk
- React-Native 之 GD (十三)数据持久化(realm) 及 公共Cell
- Android从无知到有知——NO.6
- 使用ZooKeeper
- 【读书笔记《Android游戏编程之从零开始》】11.游戏开发基础(SurfaceView 游戏框架、View 和 SurfaceView 的区别)...
- 午后随笔 -- 定位的思考
- 一个电脑安装多个系统的几个办法
- 全新2007高校BBS上睿智的冷笑话