博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV
阅读量:4538 次
发布时间:2019-06-08

本文共 1530 字,大约阅读时间需要 5 分钟。

RGB转灰度图

IplImage* cvCreateImage( CvSize size, int depth, int channels );

创建图像首地址,并分配存储空间。

void cvCvtColor( const CvArr* src, CvArr* dst, int code );

将数组的通道从一个颜色空间转换另外一个颜色空间;该code来实现不同类型的颜色空间转换。CV_BGR2GRAY表示转换为灰度图,CV_BGR2HSV将图片从RGB空间转换为HSV空间。其中当code选用CV_BGR2GRAY时,dst需要是单通道图片。当code选用CV_BGR2HSV时,对于8位图,需要将rgb值归一化到0-1之间。这样得到HSV图中的H范围才是0-360,S和V的范围是0-1。

cvLoadImage:将图像文件加载至内存;

#include 
#include
#include
#include
int toGray(IplImage* img){ IplImage* dst = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1); if(NULL == dst) return -1; cvCvtColor(img, dst, CV_BGR2GRAY); cvNamedWindow("Gray", CV_WINDOW_AUTOSIZE); cvShowImage("Gray", dst); cvSaveImage("Gray.jpg", dst, 0);//保存 cvWaitKey(0); cvReleaseImage(&dst); cvDestroyWindow("Gray"); return 1;}int main(int argc, char** argv){ if(argc != 2) { printf("Usage:test xxx.jpg\n"); return 1; } IplImage* img = cvLoadImage(argv[1], CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR); //如果想要载入最真实的图像,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR。 if(NULL == img) { printf("Image load fail!\n"); return 2; } cvNamedWindow("RGB", CV_WINDOW_AUTOSIZE); cvShowImage("RGB", img); toGray(img); cvReleaseImage(&img); cvDestroyWindow("RGB");}

 

转载于:https://www.cnblogs.com/i-love-kobe/p/6083694.html

你可能感兴趣的文章
javascript 日常
查看>>
让插件帮你优化代码
查看>>
ng 动态的生成option。
查看>>
ORACLE-12C-RAC INSTALL
查看>>
自定义引用类型的Enumerable.Union调用(原创)
查看>>
抽象类实例
查看>>
react context prop-types
查看>>
Java之路——Java初接触
查看>>
2018.12.27学习JavaScript
查看>>
Cocoa编程开发者手册
查看>>
C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
查看>>
理工之 A+B Problem III
查看>>
SalesForce自定义按钮(javascript执行),点击按钮更新Filed
查看>>
软件工程第一次作业
查看>>
【Android 界面效果24】Intent和PendingIntent的区别
查看>>
node学习之搭建服务器并加装静态资源
查看>>
android 按menu键解锁功能的开关
查看>>
wpf 自定义窗口,最大化时覆盖任务栏解决方案
查看>>
Linux 下的dd命令使用详解
查看>>
POJ-1273 Drainage Ditches 最大流Dinic
查看>>