opencv读图片灰度值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv读图片灰度值相关的知识,希望对你有一定的参考价值。

#include"cv.h"
#include"highgui.h"
#include <iostream>
#include<stdlib.h>
#include<stdio.h>
int a[1000][1000];//数据存放
int main()

int argc, char** argv;
FILE *f;
if((f=fopen("2.txt","w"))==NULL)
cout<<"can't open file\n";exit(1);
IplImage* src = cvLoadImage( "sdfwe.jpg", 0);
int width=src->width;//图片宽度
int height = src->height;//图片高度

for (size_t row=0;row<height;row++)

uchar* ptr = (uchar*)src->imageData+row*src->width;//获得灰度值数据指针
for (size_t cols=0;cols<width;cols++)

int intensity=ptr[cols];
a[row][cols]=ptr[cols];
fprintf(f,"%d ",a[row][cols]);

fprintf(f,"\n");

这是我写的取图片灰度值的程序,可是读出来总有不应该出现的0,哪里出问题了呢?求大神指教!

参考技术A

在main函数前面加上using namespace std;

另外uchar* ptr = (uchar*)src->imageData+row*src->width;//获得灰度值数据指针

改成uchar* ptr = (uchar*)src->imageData+row*src->widthStep;//获得灰度值数据指针

运行的结果保存在了2.txt是吧,我看了下没有0


opencv的图片的灰度处理‘

 

#include "stdafx.h" //实现将彩色图片转换成灰度图

int _tmain(int argc, _TCHAR* argv[])
{
IplImage *image; //初始化保存原始图像
IplImage *result; //保存灰度图

image = cvLoadImage("图片3.jpg",-1);

int channel =-1;
int depth =image->depth;
CvSize sz;
sz.width =image->width;
sz.height =image->height;

result = cvCreateImage(sz,depth,channel);
cvCvtColor(image,result,CV_BGR2GRAY);
cvNamedWindow("original",1);
cvShowImage("original",image);
cvNamedWindow("gray",1);
cvShowImage("gray",result);
cvSaveImage("路面5.jpg",result);


cvWaitKey(0);
cvReleaseImage(&image);
cvReleaseImage(&result);
cvDestroyWindow("original");
cvDestroyWindow("gray");
return 0;
}

以上是关于opencv读图片灰度值的主要内容,如果未能解决你的问题,请参考以下文章

opencv如何将lena.jpg的灰度值读取出来并在计算机上保存下来

OpenCV - 从图像中获取灰度值

使用OpenCV如何获取图像每个像素的灰度值??

怎样用opencv语句求二值化图像总的灰度值

python opencv身份证灰度图二值化应该怎么处理

C++的opencv里怎么读取Mat图像中特定坐标的灰度值?