平台:win7+opencv2.4.4+vs2008

功能:实现对图像的读入、灰度化、归一化和向量化。

代码:

//这里的头文件都是vs2008的,与vc6.0有多不同

#include

#include

using namespace std;

using namespace cv;

void main(int argc, char* argv[])

{

IplImage *src;

src = cvLoadImage("D:\\image.jpg"); //这里将lena.jpg和lena.cpp文件放在同一个文件夹下

cvNamedWindow("src",CV_WINDOW_AUTOSIZE);

cvMoveWindow("src",0,50);

cvShowImage("src",src);

//图像灰度化

IplImage* gray_image;

gray_image = cvCreateImage(cvGetSize(src),8,1);

cvCvtColor(src,gray_image,CV_BGR2GRAY);

//cvNamedWindow("gray",CV_WINDOW_AUTOSIZE);

//cvMoveWindow("gray",100,100);

//cvShowImage("gray",gray_image);

//尺度归一化

IplImage* norm_image;

CvSize norm_cvsize;

norm_cvsize.width = 100; //目标图像的宽

norm_cvsize.height = 100; //目标图像的高

norm_image = cvCreateImage(norm_cvsize, gray_image->depth,gray_image->nChannels); //构造目标图象

cvResize(gray_image, norm_image, CV_INTER_LINEAR); //缩放源图像到目标图像

//cvNamedWindow("norm",CV_WINDOW_AUTOSIZE);

//cvMoveWindow("norm",150,150);

//cvShowImage("norm",norm_image);

//图像转化成矩阵

CvMat* norm_mat = cvCreateMat(norm_image->height,norm_image->width,CV_32FC1);//定义一个指向CvMat对象的指针

cvConvert(norm_image,norm_mat);

//变成行向量(默认为行向量)

CvMat vecHead,*vecRow;

vecRow=cvReshape( norm_mat, &vecHead, 0, 1 );//vec是得到的一维向量

//矩阵转置从而得到列向量

CvMat* col_mat = cvCreateMat(norm_image->height,norm_image->width,CV_32FC1);

cvTranspose( norm_mat, col_mat );

//变成列向量(获得列向量需要装置矩阵)

CvMat colHead,*vecCol;

vecCol=cvReshape( col_mat, &colHead, 0, 1 );//得到的一维向量

//显示向量元素

int S=norm_cvsize.width*norm_cvsize.width;

//给列向量赋值

float c=0,col[10000]={0};

float *p;//获得矩阵元素(0,0)的指针

p = (float*)cvPtr1D(vecCol, 0,0);

for(int i = 0; i

{

//printf("%f\t",*p/255);

col[i]=*p/255;

c=col[i];

printf("%f\t",c);

p++;

}

cvWaitKey(0);//按需要0课改为任意值

cvDestroyAllWindows();

cvReleaseImage(&src);

cvReleaseImage(&gray_image);

cvReleaseImage(&norm_image);

cvReleaseMat(&norm_mat);

system("pause");//可加可不加

}

本代码经本人调试均已通过,而且已得到应用。

opencv图像灰化_opencv读入图像、灰度化、归一化、向量化相关推荐

  1. 图像的色彩类别,灰度化,二值化

    灰度化:在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值.亮度值),灰度范围为0-255.一般常用的是加权 ...

  2. opencv学习1-3——通道变换,灰度化grayscale,二值化thresholding。

    入手opencv,最好的方法就是对应着程序进行学习是一个很好的方法,通过一些单个程序来了解图形处理的一些知识.这篇文章将介绍下面三个小任务.通道变换,灰度化,普通二值化.本文以C++版本进行代码介绍. ...

  3. matlab读入图像语句,matlab读入图像

    1.以文件打开方式读入图片 [fn,pn,fi]=uigetfile('*.bmp','选择图片'); I=imread([pn fn]); 2.直接读入图片 I=imread('F:examMatl ...

  4. 【无标题】用Qt+OpenCV做一个图像处理软件(灰度化)

    初入坑,有问题请指正. 首先,点击菜单栏插入选项,从文件目录中选取一张图片 . 附代码 void MainWindow::on_charu_triggered() {QString filename= ...

  5. opencv 修改图像数值_opencv 修改图像数值_Python中使用OpenCV读取像素

    如何在Python中遍历像素呢?请看代码: import numpy as np import cv2 import matplotlib.pyplot as plt src = cv2.imread ...

  6. java用opencv实现滤镜_opencv滤镜-二值化实现黑白滤镜

    黑白滤镜 黑白滤镜非常简单,顾名思义就是图像只有黑色与白色,这实际上就是图像的二值化.实现的原理也非常地简单,设定一个阈值,假设为128,判断每个像素点的灰度值,大于128设为255(对应白色),小于 ...

  7. opencv 绘制坐标曲线_OpenCV手工实现灰度及RGB直方图

    #include #include#include#include#include#include#include#include#include using namespacecv;using na ...

  8. python怎么计算图像梯度_opencv python图像梯度实例详解

    这篇文章主要介绍了opencv python图像梯度实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一阶导数与Soble算子 二阶导数与拉普 ...

  9. 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)

    目录 一.什么是图像的灰度化? 二.灰度化的几种方法(最大值法.平均值法.加权均值法.gamma校正) 1.直接调用函数:cv2.cvtColor() 图像颜色空间转换 2.最大值法 (1)概念 (2 ...

最新文章

  1. 用无序列表做的网站公告牌(Billboard)
  2. 湖北大学 计算机考研,湖北大学考研难吗?一般要什么水平才可以进入?
  3. 工作163:eachrt修改
  4. python深拷贝实现原理,js递归实现深拷贝
  5. 关于JAVA中的synchronized,一段不错的解释...
  6. 如何不让Oracle使用Linux的swap分区
  7. Windows系统cmd常用命令详解
  8. TypeScript 素描 - 接口
  9. RPM-YUM-源码
  10. 43种名车标志及来历
  11. MTSP遗传算法解决
  12. org.elasticsearch.common.util.concurrent.EsRejectedExecutionException 查询超时异常处理记录---一定要用单例模式
  13. 基音提取之短时自相关法
  14. 复习javascript入门到精通
  15. 【渝粤题库】广东开放大学 服务标准化 形成性考核
  16. linux log4j2.xml,动态配置log4j2.xml日志输出文件的位置
  17. 小傻蛋的妹妹跟随小甲鱼学习Python的第十三节013
  18. 基于阿里云容器镜像服务加速K8S镜像下载(二)
  19. SiamFC响应图热力图绘制
  20. fatfs应用层实例

热门文章

  1. 第三章:3.5 傅里叶变换
  2. java httpclient 获取cookie_java – 从httpclient 3转换为httpclient 4(Cookie策略)
  3. java mybatis拦截配置_SpringMvc拦截器配置_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...
  4. 第七讲 一阶常系数线性ODE
  5. 把2018年所有踩过的坑都记在这里。
  6. scrapy-1.2.1安装失败之解决方法
  7. PHP文件操作常用函数总结
  8. A Complete List of .NET Open Source Developer Projects
  9. 文字或者图片连续滚动
  10. 微软Http错误Code解析