zoukankan      html  css  js  c++  java
  • 《学习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         RGBBGR色彩空间之间转换(包含或者不包含alpha 通道

    CV_RGB2RGBA

    CV_BGR2BGRA           RGBBGR图像中增加alpha 通道

    CV_RGBA2RGB

    CV_BGRA2BGR           RGBBGR图像中删除alpha 通道

    CV_RGB2BGRA

    CV_RGBA2BGR

    CV_BGRA2RGB

    CV_BGR2RGBA            增加或者移除alpha通道时,转换RGBBGR 色彩空间

    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 709D65 白点)

    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(huesaturationvalue)色彩空间或反变换

    CV_RGB2HLS 

    CV_BGR2HLS 

    CV_HLS2RGB 

    CV_HLS2BGR                     转换RGB或者BGR色彩空间到HLS(hueLightnesssaturation)色彩空间或反变换

    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



  • 相关阅读:
    Vue表单输入绑定(文本框和复选框)
    Vue登录方式的切换
    IDEA导包(以junit为例)
    反射相关类
    dom4j加载xml文件
    Vue购物车
    IDEA基本设置和快捷键大全
    react组件间的通信-父子通信,子父通信,兄弟通信
    react受控组件
    react中数据承载--props和state用法
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6781587.html
Copyright © 2011-2022 走看看