c++ cv转化灰度图_OpenCV C++如何使RGB图像变为灰度图像
http://m.blog.csdn.net/blog/u014395105/41308979
最近在研究如何用C++来处理图像,而不使用封装好的OpenCV代码,这样能够更好的了解OpenCV的内部原理。
在网上搜了一些关于C++代码来实现RGB(彩色)图像转换为 gray(灰度)的原理以及代码,可读性较差,所以自己整理了一下,若需转载,请标明出处,谢谢!
一、学习cvtColor函数
void cvCvtColor( const CvArr* src, CvArr* dst, int code );
src 输入的 8-bit,16-bit或 32-bit单倍精度浮点数影像。
dst 输出的8-bit, 16-bit或 32-bit单倍精度浮点数影像。
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。
二、利用OpenCV的函数将彩色图像转为灰度图像:
#include
using namespace cv;
using namespace std;
int main()
{
Mat src = imread("lena.jpg",1);
//Mat src = imread("lena.jpg",0);
Mat dst;
namedWindow("RGB",WINDOW_AUTOSIZE);
imshow("RGB",src);
//waitKey(0);
cvtColor(src,dst,CV_BGR2GRAY);
namedWindow("GRAY",WINDOW_AUTOSIZE);
imshow("GRAY",dst);
cout<
waitKey(0);
src.release();
dst.release();
destroyWindow("RGB");
destroyWindow("GRAY");
return 0;
}
三、imread的函数原型是:Mat imread( const string& filename, int flags=1 );
Mat是OpenCV里的一个数据结构,在这里我们定义一个Mat类型的变量img,用于保存读入的图像,在本文开始有写到,我们用imread函数来读取图像,第一个字段标识图像的文件名(包括扩展名),第二个字段用于指定读入图像的颜色和深度,它的取值可以有以下几种:
1) CV_LOAD_IMAGE_UNCHANGED (<0),以原始图像读取(包括alpha通道),
2) CV_LOAD_IMAGE_GRAYSCALE ( 0),以灰度图像读取
3) CV_LOAD_IMAGE_COLOR (>0),以RGB格式读取
转载请注明出处:http://blog.csdn.net/u014395105/article/details/41308979
c++ cv转化灰度图_OpenCV C++如何使RGB图像变为灰度图像相关推荐
- opencv批量灰度转换_OpenCV图像处理之常见的图像灰度变换
1.灰度线性变换 图像的灰度线性变换是图像灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度,从而达到图像增强的目的.灰度映射通常是用灰度变换曲线来进行表示.通常来说,它是将图像的像素值 ...
- python将图像转化为灰度图像_在Python中,如何将RGB图像转换为灰度图像?
我正在尝试使用matplotlib读取RGB图像并将其转换为灰度图像. 在matlab中,我使用这个: img = rgb2gray(imread('image.png')); 在matplotlib ...
- matlab灰度图孔洞填充,一种深度图像空洞的自动填充方法与流程
本发明涉及深度图像空洞填充技术,从彩色图像的结构相似性出发,求解空洞像素点的多尺度结构相似性,将空洞像素分为平滑区域空洞像素和非平滑区域空洞像素,并针对不同的空洞像素,采用不同的填充算法.在平滑区域空 ...
- matlab将图片转换为灰度图_视频处理之灰度图
欲观原文,请君移步mp.weixin.qq.com 灰度图概念 灰度图 ,Gray Scale Image 或是Grey Scale Image,又称灰阶图.把白色与黑色之间按对数关系分为若干等级, ...
- 灰度图、黑白图,彩色图理解
黑白图,是指每个像素的颜色用二进制的1位来表示,颜色只有"1"和"0"这两个值 ,(Data值为0或者255)这也就是说,要么是黑,要么是白.例如: CvInv ...
- 【Python·OpenCV】如何实现 HSV 与灰度图的相互转换?
文章目录 一.引言 二.为什么需要 HSV ? 三.HSV 三个分量表示什么? 四.绘图误区 五.HSV 和灰度图的转换 六.参考链接 Github 项目地址:https://github.com/S ...
- 利用OpenCV的imread将RGB图像转化为灰度图像
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 通常,我们是利用cvtColor将图像转化为灰度 ...
- 2021-07-27 对labelme标注出来的JSON文件进行灰度图转化(标签值0.1.2.3.4)
对labelme标注出来的JSON文件进行灰度图转化(标签值0.1.2.3.4) 原图如下: 标注后生成json文件如下: import cv2 import numpy as np import j ...
- python使用openCV把原始彩色图像转化为灰度图、使用矩阵索引的方式对数据数据进行剪裁(image cropping)
python使用openCV把原始彩色图像转化为灰度图.使用矩阵索引的方式对数据数据进行剪裁(image cropping) 目录
- Python使用openCV把原始彩色图像转化为灰度图、使用OpenCV把图像二值化(仅仅包含黑色和白色的简化版本)、基于自适应阈值预处理(adaptive thresholding)方法
Python使用openCV把原始彩色图像转化为灰度图.使用OpenCV把图像二值化(仅仅包含黑色和白色的简化版本).基于自适应阈值预处理(adaptive thresholding)方法 目录
最新文章
- 【嵌入式】C语言高级编程-可变参数宏(12)
- 拾趣——ios::sync_with_stdio(false)详解(提高代码运算速度)
- linux下elasticsearch的安装
- Python 配置文件之ConfigParser模块(实例、封装)
- python构建huffman树_python:哈夫曼树,PythonHuffuman
- 二叉树的创建、遍历(递归和非递归实现)、交换左右子数、求高度(c++实现)
- 23种设计模式(十八)状态变化之备忘录
- Android软键盘问题
- matlab 改变图片比例尺,ps修改图片尺寸和比例尺方法图解
- PDF修改文字的步骤
- 2018.12.15【HDU4622】Reincarnation(后缀自动机SAM)
- java 创建word文件_java基于feemarker 生成word文档(超级简单)
- wincc做皮带动画_WINCC中制作管道流体流动动画的一种方法
- Windows自定义右键菜单
- VTP Domain
- java 获取系统分隔符_java 根据系统获取文件分隔符
- Windows10系统盘清理实用攻略
- (贪心)过桥问题(c++)
- 数字人民币跟第三方支付的区别
- 苹果笔记本屏幕亮度调节不了/太暗怎么办?