opencv像素基本操作及图像遍历at
在实现一个小的程序时需要自行将像素点值写入,但是忘记灰度图像如何写入了,找到一篇介绍较好的文章,转过来
转自:http://blog.csdn.net/xuhang0910/article/details/47058419
-------------------------------------------下面是正文部分-------------------------------------------------
矩阵元素的表达:
对于单通道图像,其元素类型一般为 8U (即 8位无符号整数),当然也可以 是 16S 、32F32F 等;这些类型可以直接用 uchar 、short 、float等 C/C++语言中的基本数据类型表达。
如果多通道图像,如RGB彩色图像,需要用三个通道来表示。在这种情况 下,如果依然将图像视作一个二维矩阵那么矩阵的元素不再是基本数据类型。
opencv中使用vec可表示向量,用于矩阵元素的表达。
像素值的读写可使用at()函数
- #include<opencv2\opencv.hpp>
- #include<iostream>
- using namespace cv;
- using namespace std;
- int main()
- {
- Mat grayim(600, 800, CV_8UC1);
- Mat colorim(600, 800, CV_8UC3);
- //遍历所有像素,并设置像素值
- for (int i = 0; i < colorim.rows; i++)
- for (int j = 0; j < colorim.cols;j++)
- {
- Vec3b pixel;//创建数组pixel
- pixel[0] = i % 255;
- pixel[1] = j % 255;
- pixel[2] = 0;
- /*以下内容读者可忽略
- image.at<cv::Vec3b>(j, i)[0] = 255;
- image.at<cv::Vec3b>(j, i)[1] = 255;
- image.at<cv::Vec3b>(j, i)[2] = 255;椒盐噪点那块*/
- //将第i行j列的像素值设为像素值为pixel的颜色
- colorim.at<Vec3b>(i, j) = pixel;
- //将i行j列的像素值设为128
- grayim.at<uchar>(i, j) = (i+j)%255;
- }
- imshow("colcorim", colorim);
- imshow("grayim", grayim);
- waitKey(20000);
- return 0;
- }
生成的图像如图,so beautiful
需要注意的是,如果遍历图像并不推荐使用 需要注意的是,如果遍历图像并不推荐使用 at() 函数。使用at()函数优点是代码可读性高,但效率不高。
opencv像素基本操作及图像遍历at相关推荐
- 【opencv学习笔记】003之图像像素基本操作(获取像素指针、范围处理)及掩膜操作(filter2D)详解
目录 一.前言 二.图像像素基本操作 1.获取图像像素指针 1.获取图像像素指针是什么? 2.相应API 3.获取目的 2.像素范围处理saturate_cast 1.像素范围处理是什么? 2.像素范 ...
- opencv——图像遍历以及像素操作
摘要 我们在图像处理时经常会用到遍历图像像素点的方式,在OpenCV中一般有四种图像遍历的方式,在这里我们通过像素变换的点操作来实现对图像亮度和对比度的调整. 数据格式千万不要搞错: uchar对应的 ...
- OpenCV-C++对图像像素的四种遍历操作
在OpenCV-C++环境下,图像的存储容器是Mat对象,所以对图像像素的遍历,就是对Mat对象每一个数据元素的遍历. 关于Mat对象的详细介绍,可以参见博文 https://www.hhai.cc/ ...
- [Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...
相关库安装指导: 这里我们需要 opencv_python,numpy,matplotlib库,另外我用的是python3.6.1版本. 一般库大家都是用pip install命令安装的,不过不知道为 ...
- 使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI
使用Python,OpenCV获取.更改像素,修改图像通道,剪裁ROI 1. 效果图 2. 源码 参考 这篇博客将介绍使用Python,OpenCV获取.更改像素,修改图像通道,截取图像感兴趣ROI: ...
- android都图片mat_计算机视觉 OpenCV Android | Mat像素操作(图像像素的读写、均值方差、算术、逻辑等运算、权重叠加、归一化等操作)...
本文目录 1. 像素读写 2. 图像通道与均值方差计算 3. 算术操作与调整图像的亮度和对比度 4. 基于权重的图像叠加 5. Mat的其他各种像素操作 1. 像素读写 Mat作为图像容器,其数据部分 ...
- OpenCV计算机视觉学习(1)——图像基本操作(图像视频读取,ROI区域截取,常用cv函数解释)
人工智能学习离不开实践的验证,推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力.FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台.每周免费提供 ...
- 使用OpenCV,Python进行图像哈希(差分哈希 dHash)处理
使用OpenCV,Phthon进行图像哈希处理的一个重要应用是去除重复的图像: 当你有多个相册的图片,进行合并时,so boring,有一些图片是重复的,肉眼来看太难删除了. 图像哈希可以帮助你完美的 ...
最新文章
- 生成对抗网络是什么?
- 计算机应届生必读的 AI 入门经典书单
- 细思极恐!只需54块钱,你也能让AI伪造一系列联合国发言
- 接口测试用例设计思路
- 《消逝的光芒》为何能成为Steam热销榜常客 ?
- 在Ubutun 14.04 Desktop LTS上部署Hadoop 2.7.1(伪分布式)
- 持续集成持续部署持续交付_自动持续开发和交付混合移动应用程序
- Win11如何提高游戏性能?Win11提升游戏性能的方法
- Web API-DOM节点操作
- 安卓开发者必备的六个工具
- jQuery效果-----fadeIn()、fadeOut()、fadeToggle()、fadeTo()
- Hibernate_01_初体验
- aix linux tcp连接数,修改windows、linux、aix等系统TCP/IP 参数
- 三大代码审计工具对比
- Edge(chrome内核)浏览器Linux版本初体验
- mysql中single是什么意思_single是什么意思
- vue登录时验证码获取
- 宝德自强PT620Z1
- Linux Shell脚本中压缩包解压到目标目录下
- 结构体对齐(字节对齐)规则及大小计算
热门文章
- securecrt是什么工具_网络总出故障,这几款工具你掌握了没?!!
- 正点原子探索者原理图_正点原子【STM32-F407探索者】第二十六章 DAC 实验
- IIS 上传文件大小配置步骤(默认200K)
- javascript Navigator对象属性和方法
- SpringBoot+Mybatis 框架之 @Select注解方式搭建
- 第十八篇:java操作Excel要处理和分辨的几个概念
- input标签内容改变的触发事件
- 阅读JavaScript高级程序设计(第二版)笔记
- 简历英文 计算机水平,计算机英文 简历
- [译] 最佳安全实践:在 Java 和 Android 中使用 AES 进行对称加密