矩阵和图像的操作

(1)cvMinManLoc函数

其结构

void cvMinMaxLoc(//取出矩阵中最大最小值const CvArr* arr,//目标矩阵double* min_val,//最小值double* max_val,//最大值CvPoint* min_loc = NULL,//最小值位置CvPoint* max_loc = NULL,//最大值位置const CvArr* mask = NULL//矩阵“开关”
);

实例代码

#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std;int main()
{ double a[3][3] = {    {1,2,3},{4,5,6},{7,8,9}};CvMat va = cvMat(3,3, CV_64FC1,a);cout<<"目标矩阵:"<<endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++)printf("%f\t",cvmGet(&va,i,j));cout << endl;}double min_Val,max_Val;cvMinMaxLoc(&va,&min_Val,&max_Val);cout << "最小值为:" << endl;cout << min_Val << endl;cout << "最大值为:" << endl;cout << max_Val << endl;getchar();return 0;}

输出代码

(2)cvMul函数

其结构

void cvMul(//两个矩阵相应元素相乘const CvArr* src1,//矩阵1const CvArr* src2,//矩阵2CvArr* dst,//结果矩阵double scale = 1//因子系数
);

实例代码

#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std;int main()
{ double a[3][3] = {    {1,2,3},{4,5,6},{7,8,9}};CvMat va = cvMat(3,3, CV_64FC1,a);double b[3][3] = {    {2,1,2},{1,2,1},{2,1,2}};CvMat vb = cvMat(3,3, CV_64FC1,b);cout<<"目标矩阵:"<<endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++)printf("%f\t",cvmGet(&va,i,j));cout << endl;}cout<<"因子矩阵:"<<endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++)printf("%f\t",cvmGet(&vb,i,j));cout << endl;}cvMul(&va,&vb,&va);cout<<"结果矩阵:"<<endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++)printf("%f\t",cvmGet(&va,i,j));cout << endl;}getchar();return 0;}

输出结果

(3)cvNot函数

其结构

void cvNot(//元素按位取反const CvArr* src,//目标矩阵CvArr* dst//结果矩阵
);

实例代码

#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std;int main()
{IplImage *src1,*src2;src1=cvLoadImage("5.jpg");src2=cvLoadImage("7.jpg");cvNot(src1,src2);cvShowImage( "原图", src1);cvShowImage( "结果图", src2);cvWaitKey();return 0;
}

输出结果

(4)cvNorm函数

其结构

double cvNorm(//计算各种范式const CvArr* arr1,//矩阵1const CvArr* arr2 = NULL,//矩阵2int norm_type = CV_L2,//选择范式标量const CvArr* mask = NULL//矩阵“开关”
);

ps:arr2=NULL时,对于不同的norm_type由cvNorm()计算范式的公式

arr2非空。且norm_type不同值时函数cvNorm()计算范数的计算公式

实例代码

#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std;int main()
{ double a[3][3] = {    {1,2,3},{4,-12,6},{7,8,9}};CvMat va = cvMat(3,3, CV_64FC1,a);cout<<"目标矩阵:"<<endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++)printf("%f\t",cvmGet(&va,i,j));cout << endl;}double dis = cvNorm(&va,NULL,CV_C,NULL);cout<<"结果:"<<endl;cout<< dis <<endl;getchar();return 0;}

输出结果

(5)cvNormalize函数

其结构

void cvNormalize(const CvArr* src, //目标矩阵CvArr* dst,//结果矩阵double a = 1.0 // 归一化区间上限double b = 0.0 // 归一化区间下限int norm_type = CV_L2,//选择归一化标量const CvArr* mask //矩阵“开关”
);

ps:函数cvNormalize()的參数norm_type可能的值

实例代码

#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
using namespace std;int main()
{ double a[3][3] = {    {1,0,0},{0,2,0},{0,0,2}};CvMat va = cvMat(3,3, CV_64FC1,a);cout<<"目标矩阵:"<<endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++)printf("%f\t",cvmGet(&va,i,j));cout << endl;}cvNormalize(&va,&va,1,0,CV_C);cout<<"结果矩阵:"<<endl;for(int i=0;i<3;i++){for(int j=0;j<3;j++)printf("%f\t",cvmGet(&va,i,j));cout << endl;}getchar();return 0;
}

输出结果

to be continued

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/hrhguanli/p/4715022.html

《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize...相关推荐

  1. 《学习opencv》笔记——矩阵和图像处理——cvGEMM,cvGetCol,cvGetCols and cvGetDiag

    矩阵和图像操作 (1)cvGEMM函数 其结构 double cvGEMM(//矩阵的广义乘法运算const CvArr* src1,//乘数矩阵const CvArr* src2,//乘数矩阵dou ...

  2. 《学习opencv》笔记——矩阵和图像处理——cvAnd、cvAndS、cvAvg and cvAvgSdv

    矩阵和图像的操作 (1)cvAnd函数 其结构 void cvAnd( //将src1和src2按像素点取"位与运算"const CvArr* src1,//第一个矩阵const ...

  3. 《学习opencv》笔记——矩阵和图像处理——cvMax,cvMaxS,cvMerge,cvMin and cvMinS

    矩阵和图像操作 (1)cvMax函数 其结构 void cvMax(//比較两个图像取最大值const CvArr* src1,//图像1const CvArr* src2,//图像2CvArr* d ...

  4. 《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问

        老板让让做一个东东.输入端要用到opencv顺便就来学习一下.买了本书<学习opencv>翻来一看,opencv1.0,去官网上一看.opencv2.49,瞬间有种蛋碎的赶脚.看着 ...

  5. B站台湾大学郭彦甫|MATLAB 学习笔记|08 图像处理I Image Processing

    MATLAB学习笔记(08 图像处理I Image Processing) 如果想获得更好浏览体验的朋友可以转到下面链接 08 1. 基本操作 读取图像 imread() 展示图像 imshow() ...

  6. B站台湾大学郭彦甫|MATLAB 学习笔记|09 图像处理II Image Processing

    MATLAB学习笔记(09 图像处理II Image Processing) 如果想获得更好浏览体验的朋友可以转到下面链接 09 1. 提出问题 题目:如何找出图片中的米粒,并且确定他们的大小? 老师 ...

  7. 数字图像处理学习笔记 六 彩色图像处理

    目录 (一)彩色模型介绍 1.1 RGB模型 1.2 CMY.CMYK模型 1.3 HSI彩色模型 1.4 HSV模型 1.5 YCbCr 彩色空间 (二)伪彩色图像处理 (三)全彩色图像处理及彩色变 ...

  8. 在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

    在pycharm中学习opencv图像处理 安装python 下载python安装包 开始安装 安装pycharm社区版 下载pycharm安装包 开始安装 启动pycharm创建第一个项目 创建第一 ...

  9. 学习OpenCV的学习笔记系列(三)显示图片及视频

    OpenCV是计算机视觉库,那么处理的对象无非两个:"图片"及"视频"(其实视频也是被解压成单帧图像来处理的,总的来说,还是处理图像). 那么要想学习OpenC ...

最新文章

  1. 文件系统vs对象存储——选型和趋势
  2. 乘客公交车上被盗 司机该不该停车闭门等警察
  3. Git、GitHub、GitLab三者之间的联系以及区别
  4. php7与golang,golang 调用 php7
  5. [转] TF-IDF与余弦相似性的应用(三):自动摘要
  6. arial unicode ms字体_适合海报设计的最佳字体
  7. 解决 Files 的值 HEAD无效。路径中具有非法字符...
  8. grab显示连接不上服务器,grab软件使用方法 grab打车软件
  9. 吉他音阶实战练习教程(一)
  10. vue 加headers_vue上传图片设置headers表头信息
  11. matlab模拟投硬币实验,利用几何画板模拟抛硬币实验
  12. 神器大师泰兹瑞与威穆
  13. Java.lang.Class类 isArray()方法有什么功能呢?
  14. Redis面试完整版
  15. arccotx图像在matlab,arccotx图像(cotx的定义域和图像)
  16. 有什么占内存小又好玩的手游,占内存小的手机游戏
  17. 条码标签编辑软件如何选择?
  18. 中国慕课c语言入门视频,程序设计入门——C语言
  19. php写简单的模板tpl
  20. P1074 靶形数独

热门文章

  1. android入门学习一 基本概念
  2. shell写的检测linux系统硬件信息的脚本
  3. C++ return ,break,continue,关键字
  4. NodeMCU快速上云集锦
  5. [CF843D]Dynamic Shortest Path
  6. iOS开发网络篇—多线程断点下载
  7. 这些git技能够你用一年了
  8. 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
  9. Linux上常用的安全技术iptables与squid代理服务器
  10. Mandriva学习笔记之八:安装Redis2.2.14