灰度图像${\rm{M}} \times {\rm{N}}$的像素矩阵值为0~255,像素值越大越亮。${{\rm{I}}_{{\rm{i}}{\rm{j}}}}$,i表示行的位置,j 表示列的位置即i行j列。RGB图像在Opencv中内存顺序为:BGR三个通道。

获取像素的方式有三种:代码如下

 #include<opencv2/opencv.hpp>
#include<iostream> using namespace std;
using namespace cv;
void point(Mat& inputImage, Mat& result, int div);//指针方式
void iteraton_operate(Mat& inputImage, Mat& result, int div);//迭代器方式
void dynamic_address(Mat& inputImage, Mat& result, int div);//动态地址方式
Mat src, gray, dst;
int main(int argc, char** argv)
{ src = imread("H:/cv_code/image/home.jpg");
if (src.empty())
{
printf("could not find image");
return -;
}
namedWindow("input");
imshow("input",src);
cvtColor(src,gray,COLOR_BGR2GRAY);
namedWindow("result");
point(src, dst, );
iteraton_operate(src, dst, );
dynamic_address(src, dst, );
waitKey();
return ;
}
void point(Mat& inputImage, Mat& result, int div)
{
result = inputImage.clone();
int channels = result.channels();
int rows = result.rows;
int cols = result.cols * channels;
for (int i = ; i < rows; i++)
{
uchar* value = result.ptr<uchar>(i);
for (int j = ; j < cols; j++)
{
value[j] = value[j] / div * div + div / ;
}
}
}
void iteraton_operate(Mat& inputImage, Mat& result, int div)
{
result = inputImage.clone();
Mat_<Vec3b>::iterator itbegin = result.begin<Vec3b>();
Mat_<Vec3b>::iterator itend = result.end<Vec3b>();
for (;itbegin !=itend;++itbegin)
{
(*itbegin)[] = (*itbegin)[] / div * div + div / ;
(*itbegin)[] = (*itbegin)[] / div * div + div / ;
(*itbegin)[] = (*itbegin)[] / div * div + div / ; } }
void dynamic_address(Mat& inputImage, Mat& result, int div)
{
result = inputImage.clone();
int rows = result.rows;
int cols = result.cols;
for (int i = ; i < rows; i++)
{ for (int j = ; j < cols; j++)
{
result.at<Vec3b>(i, j)[] = result.at<Vec3b>(i, j)[] / div * div + div / ;
result.at<Vec3b>(i, j)[] = result.at<Vec3b>(i, j)[] / div * div + div / ;
result.at<Vec3b>(i, j)[] = result.at<Vec3b>(i, j)[] / div * div + div / ;
}
}
}

Opencv之像素值的获取的更多相关文章

  1. opencv图像像素值读取

    说到图像像素,肯定要先认识一下图像中的坐标系长什么样. 1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线:Y轴为图像矩形左边的那条垂直线.该坐标体系在诸如结构体Mat,Rect ...

  2. js获取不带单位的像素值

    所谓获取不带单位的像素值就是获取比如元素的宽度.高度.字体大小.外边距.内边距等值但是去掉像素单位. 比如:某一个元素的宽度是100px,现在我要获取这个这个值但是不带单位“px”,对于这种问题你会怎 ...

  3. 怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图?

      分类: OpenCV [Q1]怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图? 进行灰度化,IplImage* pImg = cvLoadImage( "C:\\1.b ...

  4. c#图像处理入门(-bitmap类和图像像素值获取方法)

    c#图像处理入门 -bitmap类和图像像素值获取方法 一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义 ...

  5. AE IRasterCursor 获取栅格图层像素值

    在编写使用栅格图层的代码时,常常要获取栅格图层的像素值(PixelValue).如果想获取某一点的像素值,可以使用IRaster2中的getPixelValue方法.但如果想要获得的是图层中的某一块甚 ...

  6. HTML5 Canvas 获取网页的像素值。

    我之前在网上看过一个插件叫做出JScolor   颜色拾取器  说白了就是通过1*1PX的DOM设置颜色值通过JS来获取当前鼠标点击位置DOM的颜色值. 自从HTML5 画布出来之后.就有更好的方法来 ...

  7. opencv入门系列教学(五)图像的基本操作(像素值、属性、ROI和边框)

    0.序言 每个图像是由一个个点组成的,而这些点可以表示为像素值的形式. 这篇博客里我们将学会: 访问像素值并修改它们 . 访问图像属性 . 设置感兴趣区域(ROI) . 分割和合并图像. 对于图像的基 ...

  8. opencv输出图片像素值

    需求:在控制台输出灰度图像的像素值 代码: #include <stdio.h> #include <iostream> #include <opencv2/core/c ...

  9. Opencv利用Mat访问像素值

    如果是采用Mat形式存储,想要访问灰度图像的灰度值,可以采用如下方法: 如果是彩色图像,采用如下方法: 说明: 其中gray_value中存放灰度值,image是读入的图像,i表示行,j表示列: co ...

随机推荐

  1. redis之master.slave主从复制

    简介 主机数据更新后根据配置和策略,自动同步到备机的master/slave机制,master以写为主,slave以读为主 从库配置 配置从库,不配主库 配置从库: 格式: slaveof 主库ip ...

  2. You (oracle) are not allowed to use this program (crontab)

      检查一台ORACLE数据库服务器的crontab作业(用户为oracle,实际环境中可能为oracle.也有可能是其它用户)时,发现出现下面提示信息: $ crontab -l You (orac ...

  3. Linux部署MongoDB

    下载安装包 打开网站 https://www.mongodb.com/download-center/community查找与Linux版本一致的MongoDB安装包.我这里选择安装包格式为tgz压缩 ...

  4. 正规式与正规集,DFA与NFA

    词法分析器的设计 词法分析器的功能:输入源程序.输出单词符号 词法分析器的设计:给出程序设计语言的单词规范--单词表, 对照单词表设计识别该语言所有单词的状态转换图, 根据状态转换图编写词法分析程序 ...

  5. vim编辑超大文件

    进入大文件(12g,250w+ lines),vim,耐心等待 有两种方法编辑删除冗余字段 1.set number ,可以通过:+数字组合跳到指定行,输入命令   ":100,200d&q ...

  6. Asciidoctor-pdf生成pdf文件

    本文使用asciidoc语法编写. = Asciidoctor-pdf生成pdf文件 Pinnsvin Pinnsvin@163.com v1.0 {docdate} :plantuml-server ...

  7. Python函数进阶:闭包、装饰器、生成器、协程

    返回目录 本篇索引 (1)闭包 (2)装饰器 (3)生成器 (4)协程 (1)闭包 闭包(closure)是很多现代编程语言都有的特点,像C++.Java.JavaScript等都实现或部分实现了闭包 ...

  8. JavaSE学习笔记(5)---内部类和String类

    JavaSE学习笔记(5)---内部类和String类 一.内部类基础 转自菜鸟教程 ​ 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来 ...

  9. python3-cookbook笔记:第二章 字符串和文本

    python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使 ...

  10. Android之活动Activity用法

    Activity是Android的四大组件之一,本篇将通过Activity的生命周期,Intent的组成部分以及如何使用Intent进行页面之间的消息传递来介绍它的基本用法. 1.activity的生 ...