1. 读写像素

(1)读一个灰度图像的某点像素值

Scalar intensity=img.at<uchar>(y,x);
或者Scalar intensity =img.at<uchar>(Point(x,y))

(2)读一个RGB像素点的像素值

int b = dst.at<Vec3b>(row, col)[0];  //读取像素
int g = dst.at<Vec3b>(row, col)[1];
int r = dst.at<Vec3b>(row, col)[2];

2. 修改像素值

(1)灰度图像

img.at<uchar>(y,x)=128;

(2)RGB三通道图像

dst.at<Vec3b>(row, col)[0] = newb;
dst.at<Vec3b>(row, col)[1] = newg;
dst.at<Vec3b>(row, col)[2] = newr;

(3)空白图像赋值

img=Scalar(0);

3. Vec3b与Vec3F

Vec3b对应的三通道的顺序是blue,green,red的uchar类型数据
Vec3f对应三通道的float类型
把CV_8UC1转换到CV32F1实现如下:
src.convertTo(dst,CV_32F);

代码演示:

#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>using namespace std;
using namespace cv;int main(int argc, char** argv) {Mat src,gray_src;src = imread("D:/image/test.jpg");if (src.empty()) {cout << "could not load image...." << endl;return -1;}namedWindow("input", WINDOW_AUTOSIZE);imshow("input", src);cvtColor(src, gray_src, COLOR_BGR2GRAY);     //转成灰度图像namedWindow("output", WINDOW_AUTOSIZE);imshow("output", gray_src);int height_gray = gray_src.rows;int width_gray = gray_src.cols;//单通道给图像做反向操作for (int row = 0; row < height_gray; row++) {for (int col = 0; col < width_gray; col++) {int gray = gray_src.at<uchar>(row, col);gray_src.at<uchar>(row, col) = 255 - gray;}}namedWindow("反向", WINDOW_AUTOSIZE);imshow("反向", gray_src);//三通道给图像做反向操作Mat dst;dst.create(src.size(), src.type());int height_color = src.rows;int width_color = src.cols;int channels = src.channels();for (int row = 0; row < height_color; row++) {for (int col = 0; col < width_color; col++) {int b = dst.at<Vec3b>(row, col)[0];  //读取像素int g = dst.at<Vec3b>(row, col)[1];int r = dst.at<Vec3b>(row, col)[2];int newb = 255 - b;int newg = 255 - g;int newr = 255 - r;dst.at<Vec3b>(row, col)[0] = newb;dst.at<Vec3b>(row, col)[1] = newg;dst.at<Vec3b>(row, col)[2] = newr;}}//三通道反向操作的APIbitwise_not(src, dst);namedWindow("output", WINDOW_AUTOSIZE);imshow("output", dst);waitKey(0);return 0;
}

【C++ Opencv】读写灰度图像,RGB图像的某个像素、修改像素值、图像取反(源码+API)相关推荐

  1. 基于梵·高《向日葵》的 图像阈值处理专题(二值处理、反二值处理、截断处理、自适应处理及Otsu方法)【Python-Open_CV系列(六)】

    基于梵·高<向日葵>的图像阈值处理专题(二值处理.反二值处理.截断处理.自适应处理及Otsu方法)[Python-Open_CV系列(六)] 文章目录  

  2. OpenCV中读取、显示、保存图像及获取图像属性操作讲解及演示(附源码)

    需要源码和图片请点赞关注收藏后评论区留言私信~~~ OpenCV的作用在于让开发人员更容易地通过编码来处理图像.那么,处理图像需要执行哪些操作呢?图像处理的基本操作包含4个方面的内容:读取图像.显示图 ...

  3. OpenCV图像无缝融合-seamlessClone介绍与使用(附Python/C++源码)

    导读 本期将介绍并演示OpenCV使用seamlessClone实现图像无缝融合效果. 介绍 seamlessClone是OpenCV3后添加的函数,使用此函数可以轻松将一幅图像中的指定目标复制后粘贴 ...

  4. 利用OpenCV的threshold函数实现双阈值法二值化操作的源码

    直接上源码吧,很简单,一看就懂,如果你不明白,可以举两个灰度值实际代入进行理解! 源码如下: 源码中用到的图像的下载链接为:hand1.jpg_免费高速下载|百度网盘-分享无限制 图像处理开发需求.图 ...

  5. 【OpenCV+Dlib】C++基于眼睛宽高比的实时眨眼检测(原理+完整源码)

    基于眼睛宽高比的眨眼检测 在开始之前,电脑需要配置Opencv和Dlib OpenCV配置流程请参考这篇博客:博客链接 Dlib配置过程请参考这篇博客:博客链接 Dlib有一个十分强大的功能就是能够定 ...

  6. OpenCV检测眼睛、猫脸、行人、车牌实战(附Python源码)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ OpenCV提供的级联分类器除了可以识别人脸之外,还可以识别其他一些具有明显特征的物体,如眼睛.行人等,下面介绍几个OpenCV自带的级联分类器的用 ...

  7. 【图像检测】基于形态学实现水果缺陷检测matlab源码

    数学形态学操作可以分为二值形态学和灰度形态学,灰度形态学由二值形态学扩展而来.数学形态学有2个基本的运算,即腐蚀和膨胀,而腐蚀和膨胀通过结合又形成了开运算和闭运算. 开运算就是先腐蚀再膨胀,闭运算就是 ...

  8. Java 中如何解决 POI 读写 excel 几万行数据时内存溢出的问题?(附源码)

    >>号外:关注"Java精选"公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料.开源项目. 1. Excel2003与Excel2007 两个版本 ...

  9. 图像纹理合成及纹理传输算法学习(附源码)。

    有2到3年没有逛CodeProject了,上班一时无聊,就翻翻这个比较有名的国外网站,在其Articles » Multimedia » General Graphics » Graphics一栏看到 ...

最新文章

  1. zookeeper快速入门,配置虚拟机ip、mac、虚拟机免密,jdk的安装与卸载
  2. 图像内复制粘贴篡改取证matlab_[论文笔记] 篡改检测:RGB-N
  3. 《MySQL——增删改查以及常用语法》
  4. 前端学习(3061):vue+element今日头条管理-接口分页参数说明
  5. 前端学习(1737):前端调试值测试窗口的切换
  6. 在IIS中启用父路径,不被黑客利用
  7. python库之pandas
  8. 女人离婚后不要孩子,你怎么看?
  9. 在java中生成二维码,并直接输出到jsp页面
  10. P1117 [NOI2016]优秀的拆分
  11. anroid Sqlite批量插入数据优化方法
  12. 蓝桥杯 java 组素数_第四届蓝桥杯javaC组_组素数
  13. Linux里安装ghostscript
  14. 现代检测技术课程实验编程:波特图分析仪原理仿真:一阶检测系统编程仿真
  15. 【gflags】【gflags实践】【gflags的学习使用记录】
  16. 拼多多linux版本,拼多多没有Linux版本客户端,但可用xDroid来运行拼多多APP
  17. linux中的sg工具,sg3_utils工具windows系统下的使用
  18. 大数运算之C 语言大数演算法
  19. COOKIE与SESSION比较
  20. h5移动端开发中配置真机测试

热门文章

  1. git add出现 fatal: in unpopulated submodule XXX 错误
  2. 多方收集的Winodws Xp相关技术文章
  3. openlayers学习——8、openlayers画图形
  4. uni-app 预览并使用模板
  5. 宝塔Linux tomcat启动不了
  6. 领导让你即兴讲两句?别愁!【讲话框架】学起来~
  7. 金鱼多久喂一次?一次喂几颗鱼食?
  8. Daily record-September
  9. Python北理工_turtle绘画
  10. JQuery中的九大选择器及其应用(上)