《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor
矩阵和图像的操作
(1)cvCrossProduct函数
其结构
void cvCrossProdust(//计算两个三维向量的叉积
const CvArr* src1,
const CvArr* src2,
CvArr* dst
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std; int main()
{
double va[] = {3,0,0};
double vb[] = {0,4,0};
double vc[3];
CvMat Va=cvMat(3, 1, CV_64FC1, va);
CvMat Vb=cvMat(3, 1, CV_64FC1, vb);
CvMat Vc=cvMat(3, 1, CV_64FC1, vc);
cvCrossProduct(&Va, &Vb, &Vc);
cout <<CV_MAT_ELEM(Vc,double,0,0)<<endl;
cout <<CV_MAT_ELEM(Vc,double,1,0)<<endl;
cout <<CV_MAT_ELEM(Vc,double,2,0)<<endl;
getchar();
return 0;
}
输出结果
(2)cvCvtColor函数
其结构
void cvCvtColor(//改变图像色彩空间
const CvArr* src,
CvArr* dst,
int code
);
当中code是色彩空间转换的标记其标记例如以下
CV_BGR2RGB
CV_RGB2BGR
CV_RGBA2BGRA
CV_BGRA2RGBA 在RGB或BGR色彩空间之间转换(包含或者不包含alpha 通道)
CV_RGB2RGBA
CV_BGR2BGRA 在RGB或BGR图像中增加alpha 通道
CV_RGBA2RGB
CV_BGRA2BGR 从RGB或BGR图像中删除alpha 通道
CV_RGB2BGRA
CV_RGBA2BGR
CV_BGRA2RGB
CV_BGR2RGBA 增加或者移除alpha通道时,转换RGB到BGR 色彩空间
CV_RGB2GRAY
CV_BGR2GRAY 转换RGB或者BGR色彩空间为灰度空间
CV_GRAY2RGB
CV_GRAY2BGR
CV_RGBA2GRAY
CV_BGRA2GRAY 转换灰度为RGB或者BGR色彩空间(在进程中选择移除alpha通道)
CV_GRAY2RGBA
CV_GRAY2BGRA 转换灰度为RGB或者BGR色彩空间而且增加alpha通道
CV_RGB2BGR565
CV_BGR2BGR565
CV_BGR5652RGB
CV_BGR5652BGR
CV_RGBA2BGR565
CV_BGRA2BGR565
CV_BGR5652RGBA
CV_BGR5652BGRA 在从RGB或者BGR色彩空间转换到BGR565彩色图画时,选择增加或者移除 alpha通道 (16位图)
CV_GRAY2BGR565
CV_BGR5652GRAY 转换灰度为BGR565彩色图像或者反变换(16位图)
CV_RGB2BGR555
CV_BGR2BGR555
CV_BGR5552RGB
CV_BGR5552BGR
CV_RGBA2BGR555
CV_BGRA2BGR555 在从RGB或者BGR色彩空间转换到BGR555色彩空间时,选择增加或者移除alpha通道(16位图)
CV_BGR5552RGBA
CV_BGR5552BGRA
CV_GRAY2BGR555
CV_BGR5552GRAY 转换灰度到BGR555色彩空间或者反变换(16位图)
CV_RGB2XYZ
CV_BGR2XYZ
CV_XYZ2RGB
CV_XYZ2BGR 转换RGB或者BGR色彩空间到CIE XYZ色彩空间或者反变换(Rec 709和D65 白点)
CV_RGB2YCrCb
CV_BGR2YCrCb
CV_YCrCb2RGB
CV_YCrCb2BGR 转换RGB 或者BGR色彩空间到luma-chroma (aka YCC)色彩空间
CV_RGB2HSV
CV_BGR2HSV
CV_HSV2RGB
CV_HSV2BGR 转换RGB或者BGR色彩空间到HSV(hue。saturation,value)色彩空间或反变换
CV_RGB2HLS
CV_BGR2HLS
CV_HLS2RGB
CV_HLS2BGR 转换RGB或者BGR色彩空间到HLS(hue,Lightness,saturation)色彩空间或反变换
CV_RGB2Lab
CV_BGR2Lab
CV_Lab2RGB
CV_Lab2BGR 转换RGB或者BGR色彩空间到CIE LAB色彩空间或反变换
CV_RGB2Luv
CV_BGR2Luv
CV_Luv2RGB
CV_Luv2BGR 转换RGB或者BGR色彩空间到CIE Luv色彩空间
CV_BayerBG2RGB
CV_BayerGB2RGB 转换Bayer模式(单通道) 到RGB或者BGR色彩空间
CV_BayerRG2RGB
CV_BayerGR2RGB
CV_BayerBG2BGR
CV_BayerGB2BGR
CV_BayerRG2BGR
CV_BayerGR2BGR
依据英文含义非常easy明确其意义
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src2,*src3;
src2=cvLoadImage("3.jpg");
src3=cvLoadImage("7.jpg"); cvCvtColor(src2,src3,CV_RGB2HSV);
cvShowImage( "測试2", src2);
cvShowImage( "測试3", src3);
cvWaitKey();
return 0;
}
输出结果
to be continued
《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor的更多相关文章
- 《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS
矩阵和图像的操作 (1)cvCalcCovarMatrix函数 其结构 void cvCalcCovarMatrix(计算给定点的均值和协方差矩阵 const CvArr** vects,//给定向量 ...
- 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
矩阵和图像的操作 (1)cvSetIdentity函数 其结构 void cvSetIdentity(//将矩阵行与列相等的元素置为1.其余元素置为0 CvArr* arr//目标矩阵 ); 实例代码 ...
- 《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv
矩阵和图像的操作 (1)cvAnd函数 其结构 void cvAnd( //将src1和src2按像素点取"位与运算" const CvArr* src1,//第一个矩阵 cons ...
- 《学习opencv》笔记——矩阵和图像操作——cvAbs,cvAbsDiff and cvAbsDiffS
矩阵和图像的操作 (1)cvAbs,cvAbsdiff,cvAbsDiffS 它们的结构为: void cvAbs( //取src中元素的绝对值,写到dst中 const CvArr* src, co ...
- 《学习opencv》笔记——矩阵和图像操作——cvInRange,cvInRangeS,cvInvert and cvMahalonobis
矩阵和图像的操作 (1)cvInRange函数 其结构 void cvInRange(//提取图像中在阈值中间的部分 const CvArr* src,//目标图像 const CvArr* lowe ...
- 《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero
矩阵和图像的操作 (1)cvConvertScale函数 其结构: void cvConvertScale( //进行线性变换,将src乘scale加上shift保存到dst const CvArr* ...
- opencv笔记2:图像ROI
time:2015年 10月 03日 星期六 12:03:45 CST # opencv笔记2:图像ROI ROI ROI意思是Region Of Interests,感兴趣区域,是一个图中的一个子区 ...
- OpenCV —— 矩阵和图像操作
cvAbs , cvAbsDiff , cvAbsDiffS cvAdd , cvAddS , cvAddWeighted(可添加权重) #include <cv.h> #include ...
- OpenCV利用矩阵实现图像旋转
利用OpenCV的矩阵操作实现图像的逆时针旋转90度操作 代码 Mat src = imread("C:\\Users\\fenggl\\Desktop\\测试.jpg",MREA ...
随机推荐
- 【tarjan】BZOJ2140-稳定婚姻
又名NTR的故事 [题目大意] n对夫妻Bi和Gi.若某男Bi与某女Gj曾经交往过,他们有私奔的可能性.不妨设Bi和Gj旧情复燃,进而Bj会联系上了他的初恋情人Gk,以此递推.若在Bi和Gi离婚的前提 ...
- loj2576 「TJOI2018」str
link 题意: 给一个模板串s和n个模式串,每个模式串有$a_i$种可取的串.现在要将n个模式串每个任取一种它可取的串,连接起来,记为串t,那么这种连接方式对答案的贡献为t在s中出现的次数.问所有连 ...
- (转)Ext.Button点击事件的三种写法
转自:http://maidini.blog.163.com/blog/static/377627042008111061844345/ ExtJs的写法太灵活了,现在收集了关于Button点击事件的 ...
- Use an LM317 as 0 to 3V adjustable regulator
Most engineers know that they can use an inexpensive, three-terminal adjustable regulator, such as F ...
- ADC In An FPGA
http://davidkessner.wordpress.com/2011/05/01/adc-in-an-fpga/ Geek Alert! What follows is very techn ...
- Spring通过Gmail SMTP服务器MailSender发送电子邮件
Spring提供了一个有用的“org.springframework.mail.javamail.JavaMailSenderImpl”类,通过JavaMail API 简化邮件发送过程.这里有一个项 ...
- 1Password:让一个密码记住所有密码
在这个信息大爆炸的时代,我们总有着各种各样的缘由,接触到各种各样的网站和爱屁屁,随之而来的,产生了大量的账号和密码. 每次新注册一个网站的时候,总会纠结一番:到底是新编一个密码呢?还是沿用之前的那一个 ...
- pytest文档1-环境准备与入门
前言 首先说下为什么要学pytest,在此之前相信大家已经掌握了python里面的unittest单元测试框架,那再学一个框架肯定是需要学习时间成本的. 刚开始我的内心是拒绝的,我想我用unittes ...
- Redis事务为什么不支持回滚
在事务运行期间,虽然Redis命令可能会执行失败,但是Redis仍然会执行事务中余下的其他命令,而不会执行回滚操作,你可能会觉得这种行为很奇怪.然而,这种行为也有其合理之处:只有当被调用的Redis命 ...
- Flume的安装配置
flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本.HDF ...