opencv2学习 ,读取图片,rgb2 lab
来源:互联网 发布:敏捷网络功能 编辑:程序博客网 时间:2024/06/05 06:28
利用mat读取图片,显示其方式,学习了潜莫大师的课程
#include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespace cv;
Mat image0=imread("dota.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);//载入最真实的图像 ge1=imread("dota.jpg",0);//载入灰度图 Mat image2=imread("dota.jpg",199);//载入3通道的彩色图像 Mat logo=imread("dota_logo.jpg");//载入3通道的彩色图像
</pre><pre name="code" class="cpp">Mat girl=imread("*.jpg"); //载入图像到Mat namedWindow("你好"); //创建一个名为 "【1】动漫图"的窗口 imshow("你好",girl);/imwrite("*.jpg",girl);存储图片到当前目录
<pre name="code" class="cpp">//定义一个Mat类型,用于存放,图像的ROI Mat imageROI; //方法一 imageROI=image(Rect(800,350,logo.cols,logo.rows)); //方法二 //imageROI=image(Range(350,350+logo.rows),Range(800,800+logo.cols)); //将logo加到原图上 addWeighted(imageROI,0.5,logo,0.3,0.,imageROI); //显示结果 namedWindow("【4】原画+logo图"); imshow("【4】原画+logo图",image);
下面写一个RGB转换成Lab的函数,用的很好,可以参考一下
void CRGBToLabDlg::OnOK() {rgb2lab(36,79,156,L,A,B);CString str;str.Format("%f,%f,%f",L,A,B);AfxMessageBox(str);}void CRGBToLabDlg::rgb2lab(double R, double G, double B, double &Lab_L, double &Lab_a, double &Lab_b){ double X, Y, Z; double r = R / 255.000; // rgb range: 0 ~ 1 double g = G / 255.000; double b = B / 255.000; // gamma 2.2 if ( r > 0.04045 ) r = pow(( r + 0.055 ) / 1.055, 2.4);else r = r / 12.92;if ( g > 0.04045 ) g = pow(( g + 0.055 ) / 1.055, 2.4);else g = g / 12.92;if ( b > 0.04045 ) b = pow(( b + 0.055 ) / 1.055, 2.4);else b = b / 12.92; // sRGB X = r * 0.436052025 + g * 0.385081593 + b * 0.143087414; Y = r * 0.222491598 + g * 0.716886060 + b * 0.060621486; Z = r * 0.013929122 + g * 0.097097002 + b * 0.714185470;// XYZ range: 0~100 X = X * 100.000; Y = Y * 100.000; Z = Z * 100.000; // Reference White Pointdouble ref_X = 96.4221;double ref_Y = 100.000;double ref_Z = 82.5211;X = X / ref_X;Y = Y / ref_Y;Z = Z / ref_Z; // Labif (X > 0.008856) X = pow(X, 1/3.000);else X = ( 7.787 * X ) + ( 16 / 116.000 );if (Y > 0.008856) Y = pow(Y, 1/3.000);else Y = ( 7.787 * Y ) + ( 16 / 116.000 );if (Z > 0.008856) Z = pow(Z, 1/3.000);else Z = ( 7.787 * Z ) + ( 16 / 116.000 );Lab_L = ( 116.000 * Y ) - 16.000;Lab_a = 500.000 * ( X - Y );Lab_b = 200.000 * ( Y - Z );}
0 0
- opencv2学习 ,读取图片,rgb2 lab
- Opencv2 imread() 读取图片失败
- Opencv2.3.1读取图片并显示
- vs2013-opencv2.4.10-imread()读取图片问题
- 【OpenCV学习笔记】【编程实例】一(VS2010/MFC+OPenCV2.4.7读取图片和摄像头)
- VS2008 + Opencv2.1 读取图片像素输出至Excel文件
- VS2008 + Opencv2.1 读取图片像素输出至Excel文件
- VS2008 + Opencv2.1 读取图片像素输出至Excel文件
- qt5.1+ vs2013+opencv2.4.8制作视频图片读取界面
- opencv2,RGB转Lab色彩空间
- OpenCV2学习笔记(九):视频流读取与处理
- 【opencv学习之十】opencv3和opencv2读取本地摄像头
- Opencv (Opencv2)结合MFC学习数字图像处理---显示图片
- opencv2.4.9学习:加载、修改、保存一个图片
- opencv2.4.9学习:加载、修改、保存一个图片
- opencv2读取视频提取ROI区域并把ROI区域保存为图片
- vs2013+opencv2.4 imread相对路径读取图片失败Unhandled exception
- opencv3.3和opencv2.12的imread 读取同一张图片读出来的结果不一致
- 动态规划中的最长公共子序列的介绍与理解(c源代码和改进方法的代码,有清晰的介绍与注释)
- Codeforces Round #267 (Div. 2) C George and Job
- 使用LikedList 模拟一个堆栈或者俄队列数据结构。
- jbpm基础知识总结
- uvalive 2322(贪心)
- opencv2学习 ,读取图片,rgb2 lab
- c# 实现Label拖动的两种方法
- C++11新特性:类型别名,auto类型,decltype类型
- 让ArralList集合具备判重功能。去除重复元素
- android 打开amazon appstore
- 用Set集合,按照字符串的长度排序的方法
- 好的网站链接或文章链接(二)
- Map集合和TreeSet集合的使用:自定义比较器
- 瀑布式迭代与敏捷