zoukankan      html  css  js  c++  java
  • 《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv


    矩阵和图像的操作


    (1)cvAnd函数

    其结构


    void cvAnd(  //将src1和src2按像素点取“位与运算”
    	const CvArr* src1,//第一个矩阵
    	const CvArr* src2,//第二个矩阵
    	CvArr* dst,//结果矩阵
    	const CvArr* mask = NULL;//矩阵经行像素点与的“开关”
    );

    程序实例

    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1, *src2,*src3;
    	src1=cvLoadImage("1.jpg");
    	src2=cvLoadImage("3.jpg");
    	src3=cvLoadImage("4.jpg");
    
    
    	cvAnd(src1,src2,src3);
    	cvShowImage( "測试1", src1);
    	cvShowImage( "測试2", src2);
    	cvShowImage( "測试3", src3);
    	cvWaitKey();
    	return 0;
    }

    输出结果


    (2)cvAndS函数
    其结构

    void cvAndS(//使src1与value进行 位与运算
    	const CvArr* src1,//第一个矩阵
    	CvScalar value,//运算标量
    	CvArr* dst,//结果矩阵
    	const CvArr* mask = NULL;//运算开关
    );
    

    实例程序

    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1, *src2,*src3;
    	src1=cvLoadImage("1.jpg");
    	src2=cvLoadImage("5.jpg");
    
    	CvScalar cs;
    	cs.val[1] = 100.0;
    	cs.val[2] = 100.0;
    	cs.val[0] = 100.0;
    	cs.val[3] = 100.0;
    	cvAndS(src1,cs,src1);
    	cvShowImage( "測试1", src1);
    	cvShowImage( "測试2", src2);
    
    	cvWaitKey();
    	return 0;
    }

    输出结果




    (3)cvAvg函数
    其结构

    CvScalar cvAvg(//求出src的平均像素值
    	const CvArr* src,//目标矩阵
    	const CvArr* mark = NULL//像素开关
    );
    

    实例代码:我对上面那个机器猫的图像使用

    #include <cv.h>
    #include <highgui.h>
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    
    int main(int argc, char** argv)
    {
    	IplImage *src1;
    	src1=cvLoadImage("1.jpg");
    
    	CvScalar cs;
    	
    	cs = cvAvg(src1);
    
    	cout<<cs.val[0] << endl;
    	cout<<cs.val[1] << endl;
    	cout<<cs.val[2] << endl;
    	cout<<cs.val[3] << endl;
    
    	getchar();
    	return 0;
    }

    输出结果



    (4)cvAvgSdv函数
    其结构

    CvScalar cvAvg(//求像素平均值和标准差
    	const CvArr* arr,//目标矩阵
    	CvScalar* mean,//平均值
    	CvScalar* std_dev,//标准差
    	const CvArr* mark = NULL//像素开关
    );

    程序实例:依旧用的机器猫图片

    #include <cv.h>
    #include <highgui.h>
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    
    int main(int argc, char** argv)
    {
    	IplImage *src1;
    	src1=cvLoadImage("1.jpg");
    
    	CvScalar cs,cs1;
    	
    	cvAvgSdv(src1,&cs,&cs1);
    
    	cout<<"平均值:"<<endl;
    	cout<<cs.val[0] << endl;
    	cout<<cs.val[1] << endl;
    	cout<<cs.val[2] << endl;
    	cout<<cs.val[3] << endl;
    	cout <<endl;
    	cout <<"标准差"<<endl;
    	cout<<cs1.val[0] << endl;
    	cout<<cs1.val[1] << endl;
    	cout<<cs1.val[2] << endl;
    	cout<<cs1.val[3] << endl;
    
    	getchar();
    	return 0;
    }

    输出结果



    to be continued

  • 相关阅读:
    GIS有关GP服务的发布和调用
    博文列表
    VCL编写笔记整理
    Delphi操作Excel(Use Oel)
    使用 ImageEnView 给图片加水印,及建缩略图
    Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
    从给定字符串中截取n个字节的字符(解决汉字截取乱码问题)
    tbytes 转 十六进制 string
    Delphi中拖动的方式来移动TPageControl的Tab
    delphi TEdit透明
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/9890295.html
Copyright © 2011-2022 走看看