通过双层循环,遍历所有的像素值,再输出灰度值即可。图片太大,所有只选择20行和20列进行输出。

昨天要用到图片的灰度值,脑子突然短路了,忘了存储灰度图的数组,存放的就是图片的灰度值,还以为要用什么函数才能读取图片的灰度值,忙活了半天,瞎忙活,主要问题还是在对图片的处理不够熟悉。

我写了两个,第一个就是遍历所有像素点,输出灰度图矩阵存储的每个像素点的灰度值。第二个是带有输出图片的行、列以及通道数的小程序,顺便也输出一下灰度值。不想把他们整合到一起了,就都放这边,供大家参考学习。

#include <opencv2/imgproc/imgproc.hpp> //头文件
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace cv; //包含cv命名空间
using namespace std;int main()
{// 【1】读入一张图片Mat srcImage = imread("1.jpg",0),dstImage;dstImage = srcImage.clone();int rowNumber = dstImage.rows;    //行数int colNumber = dstImage.cols*dstImage.channels();   //列数*通道数=每一行元素的个数for(int i = 0; i < 20; i++)  //行循环,可根据需要换成rowNumber{uchar* data = dstImage.ptr<uchar>(i);  //获取第i行的首地址for(int j = 0; j < 20; j++)  //列循环,同理{int intensity = data[j];cout << intensity << " " ;}cout << endl;}//cvtColor(srcImage,dstImage,CV_BGR2GRAY);// 【2】在窗口中显示载入的图片//imshow("效果图",dstImage);// 【3】等待按任意键窗口自动关闭waitKey();return 0;
}//==================================================================================#include <iostream>
#include <opencv2/opencv.hpp>  //头文件
using namespace cv;  //包含cv命名空间
using namespace std;void main( )
{    // 【1】读入一张图片,载入图像Mat srcImage = imread("1.jpg", 0);int width,height,channels;height = srcImage.rows;width = srcImage.cols;channels = srcImage.channels();for(int i = 0; i < height; i++){uchar* data = srcImage.ptr<uchar>(i);for(int j = 0; j < width; j++){//uchar val = ((uchar *)(srcImage.data + i * srcImage.step))[j];printf("gray value = %d\n",data[j]);}//printf("\n");}cout << "height = " << height <<endl<< "width = " << width << endl<< "channels = " << channels << endl;// 【2】显示载入的图片imshow("【原始图】",srcImage);// 【3】等待任意按键按下waitKey(0);
}  

opencv读取图像的灰度值并显示出来相关推荐

  1. 8bit黑白图像的灰度值范围是_浅谈工业CT图像灰度值

    工业CT使用的X射线检测作为无损检测的主要方法之一,与其他方法相比具有直观.准确等优点.射线检测中垂直于射线透照方向的缺陷尺寸可精确测量,但平行于射线透照方向的缺陷尺寸无法直接测量得到,而未焊透.根部 ...

  2. php 读取图片bgr,OpenCV读取图像为BGR

    OpenCV读取图像为BGR 以下程序演示了如何将彩色图像作为BGR类型图像读取并使用JavaFX窗口显示. 在这里通过将IMREAD_COLOR标志传递给imread()方法以及保存彩色图像路径的S ...

  3. 利用python opencv实现图像自适应二值化

    对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一.例如,灰度大于127的图像设置为1.小于127的设置为0,这种处理便是固定阈值127的二值化处理. 自适应的二值化处理不同于固定阈 ...

  4. OpenCV访问像素点的灰度值

    1.Mat矩阵数值的存储方式 这里以指针的方式访问图像素为例 (1)单通道 定义一个单通道图像: cv::Mat img_1 = (320, 640, CV_8UC1, Scalar(0)); 对于单 ...

  5. python opencv 读取图片_Python opencv 读取图像

    对于 matlab 起家做数字图像处理的人来讲都非常适应matlab对图像处理的操作和思路,尤其是它可以非常方便直观的看到图像的RGB值. 由于最近在研究深度学习的计算机视觉方面的东西,于是完全自学接 ...

  6. Pytorch+Opencv 读取图像 归一化与逆归一化

    在深度学习工程中,有时需要利用opencv对图像进行读取后传入深度学习模型中 import cv2img = cv2.imread(filepath, 1) 这里的img是narray格式,openc ...

  7. linux opencv打开图片路径,OpenCV读取图像_显示图像_保存图像

    读入图像﹑显示图像和保存图像是图像处理过程中最基本的,也是必不可少的操作. 配置好OpenCV 以后,包含以下两个头文件: #include "cv.h" #include &qu ...

  8. OpenCV读取图像_显示图像和保存图像

    配置好 OpenCV 以后,包含以下两个头文件: #include "cv.h" #include "highgui.h" IplImage* image=cv ...

  9. 8bit黑白图像的灰度值范围是_数字图像处理基本知识

    1.数字图像: 数字图像,又称为数码图像或数位图像,是二维图像用有限数字数值像素的表示.数字图像是由模拟图像数字化得到的.以像素为基本元素的.可以用数字计算机或数字电路存储和处理的图像. 2.数字图像 ...

最新文章

  1. 刚刚,百度宣布王海峰升任CTO
  2. 这个北航妹子也太卷了...
  3. IPSec 之 Server2003Cisco路由器(1)
  4. [票据打印]打印走纸控制(1) - 设置纸型
  5. linux 静态配置多个ip,linux 配置静态IP
  6. const * 和 * const 的区别
  7. 贪婪匹配和非贪婪匹配的区别
  8. 如何判断文本文件的编码格式?
  9. java poi 操作ppt
  10. 中国风吉祥纹样底纹背景,艾草绿和天青色趋势色彩
  11. cvFilter2D() 卷积初步了解
  12. 计算机操作系统张尧学第四章课后答案,计算机操作系统 课后习题答案 张尧学...
  13. 机器学习十大算法都是何方神圣?看完你就懂了
  14. 【Tensorflow教程笔记】使用 TPU 训练 TensorFlow 模型
  15. android吸顶效果,RecyclerVIew实现悬浮吸顶效果
  16. GSM/GPRS之一-GSM基础知识
  17. IE浏览器无法打开HTTPS解决办法
  18. Excel如何统计数据个数
  19. Mysql 循环更新
  20. DFC Search In Depth-转

热门文章

  1. 才华战胜资本,原创受到尊重(抄袭事件后续)
  2. 数据挖掘竞赛lightgbm通过求最大auc调参
  3. C++习题(系统菜单设计)
  4. java pdf电子签名_如何使用Java(ItExtAPI)将PDFS合并而不丢失数字签名
  5. RTSP/Onvif安防视频云平台EasyNVR显示视频流却播放不了,是什么原因?
  6. R语言入门教程知识 第七章 特殊值
  7. 《软件定义数据中心:Windows Server SDDC技术与实践》一导读
  8. 通过命令创建vue项目
  9. 浅谈基于知识图谱构建智能问答系统
  10. protostuff介绍