精华内容
下载资源
问答
  • opencv Mat 数据 最大值和最小值

    万次阅读 2014-03-17 15:33:40
    由于之前写的一些程序好多都是基于opencv中的Mat类型的,现在,需要对其中的数据最大值和最小值。感觉opencv应该有STL中类似的sort函数...后来,google了一下,发现还真的确实有的。 //! finds global ...

    由于之前写的一些程序好多都是基于opencv中的Mat类型的,现在,需要对其中的数据求取最大值和最小值。感觉opencv应该有STL中类似的sort函数...后来,google了一下,发现还真的确实有的。


    //! finds global minimum and maximum array elements and returns their values and their locations
    CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal,
                               CV_OUT double* maxVal=0, CV_OUT Point* minLoc=0,
                               CV_OUT Point* maxLoc=0, InputArray mask=noArray());
    CV_EXPORTS void minMaxIdx(InputArray src, double* minVal, double* maxVal,
                              int* minIdx=0, int* maxIdx=0, InputArray mask=noArray());

    实现代码如下所示:

    #include <iostream>
    #include <cstdlib>
    #include <cmath>
    #include <iomanip>
    #include <algorithm>
    
    #include "opencv2/core/core.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/imgproc.hpp"
    #include "opencv2/contrib/contrib.hpp"
    
    using namespace std;
    using namespace cv;
    
    int main(int argc, char* argv[])
    {
    #pragma region min_max
    
    	float Tval = 0.0;
    	float RawData[2][3] = {{4.0,1.0,3.0},{8.0,7.0,9.0}};
    	Mat RawDataMat(2,3,CV_32FC1,RawData);
    
    	for (int j = 0; j < 2; j++)
    	{
    		for (int i = 0; i < 3; i++)
    		{	
    			//Tval = RawData[j][i];             //No problem !!!
    			Tval = RawDataMat.at<float>(j,i);
    			cout << "(j,i) = "<<j<<","<<i<<"\t"<<Tval<<endl;
    		}
    	}
    
    	double minv = 0.0, maxv = 0.0;
    	double* minp = &minv;
    	double* maxp = &maxv;
    
    	minMaxIdx(RawDataMat,minp,maxp);
    
    	cout << "Mat minv = " << minv << endl;
    	cout << "Mat maxv = " << maxv << endl;
    
    #pragma endregion
    
    	return 0;
    }


    附图:



    展开全文
  • MAT之GA:利用GA对一元函数进行优化过程,x∈(0,10)中y的最大值 目录 输出结果 代码设计 输出结果 代码设计 x = 0:0.01:10; y = x + 10*sin(5*x)+7*cos(4*x); figure plot(x, y) xlabel('...

    MAT之GA:利用GA对一元函数进行优化过程,求x∈(0,10)中y的最大值

     

    目录

    输出结果

    代码设计


     

     

     

     

    输出结果

     

    代码设计

    x = 0:0.01:10;
    y =  x + 10*sin(5*x)+7*cos(4*x);
    
    figure
    plot(x, y)
    xlabel('independent variable')
    ylabel('dependent variable')
    title('GA:y = x + 10*sin(5*x) + 7*cos(4*x)利用算法求解最优解—Jason niu')
    
    
    initPop = initializega(50,[0 10],'fitness'); 
    
    [x endPop bpop trace] = ga([0 10],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,...
                               'normGeomSelect',0.08,'arithXover',2,'nonUnifMutation',[2 25 3]);
    x
    hold on
    plot (endPop(:,1),endPop(:,2),'ro') 
    
    figure(2)
    plot(trace(:,1),trace(:,3),'b:')
    title('GA算法的迭代进化曲线—Jason niu')
    hold on
    plot(trace(:,1),trace(:,2),'r-')
    xlabel('Generation'); ylabel('Fittness');
    legend('Mean Fitness', 'Best Fitness')

     

     

     

    相关文章
    GA:利用GA对一元函数进行优化过程,求x∈(0,10)中y的最大值

     

     

     

    展开全文
  • 005-opencv像素最大值和最小值

    千次阅读 2019-01-23 17:43:23
    Mat img; double minv = 0.0, maxv = 0.0; double* minp = &minv; double* maxp = &maxv; minMaxIdx(img, minp, maxp); cout << "Mat minv = " << minv << endl; cout << "Mat max....
    Mat img;
    double minv = 0.0, maxv = 0.0;
    double* minp = &minv;
    double* maxp = &maxv;
    minMaxIdx(img, minp, maxp);
    cout << "Mat minv = " << minv << endl;
    cout << "Mat maxv = " << maxv << endl;

     

    展开全文
  • **minMaxLoc()和minMaxIdx()函数的功能是一样的,两个函数的区别在于设置的参数不同,而且minMaxLoc()**针对单通道图像,**minMaxIdx()**则不限制...(2)延伸一下,可以计算图像Mat中灰度最大值、最小值、返回最大...

    minMaxLoc()和minMaxIdx()函数的功能是一样的,两个函数的区别在于设置的参数不同,而且minMaxLoc()针对单通道图像,minMaxIdx()则不限制(不过输出的坐标会变成三维)。

    函数功能

      (1)计算矩阵Mat中最大值、最小值、返回最大最小的索引
      (2)延伸一下,可以计算图像Mat中灰度最大值、最小值、返回最大最小的索引

    函数原型

    //! finds global minimum and maximum array elements and returns their values and their locations
    CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal, CV_OUT double* maxVal=0, 
    							CV_OUT Point* minLoc=0,CV_OUT Point* maxLoc=0, InputArray mask=noArray());
    //minMaxLoc()参数说明:
    
    // src:输入矩阵Mat(图像)。
    // minVal:最小值,可輸入NULL表示不需要。
    // maxVal :最大值,可輸入NULL表示不需要。
    // minLoc:最小值的位置,可输入NULL表示不需要,Point类型。
    // maxLoc:最大值的位置,可输入NULL表示不需要,Point类型。
    // mask:可有可无的掩模。
    
    //! finds global minimum and maximum array elements and returns their values and their locations
    CV_EXPORTS void minMaxIdx(InputArray src, double* minVal, double* maxVal,
    												int* minIdx=0, int* maxIdx=0, InputArray mask=noArray());
    // minMaxIdx()参数说明:
    
    // src:输入矩阵Mat(图像)。
    // minVal:最小值,可輸入NULL表示不需要。
    // maxVal :最大值,可輸入NULL表示不需要。
    // minIdx:最小值所在位置索引(i,j)
    // maxIdx:最大值所在位置索引 (i,j)
    // 【注】:minIdx和maxIdx的类型没有给出明确的说明和示例,需要将其定义为int型的含有两个数的数组,
    // 		e.g. int idx_min[2] = {255,255}, idx_max[2]= {255, 255};,这是因为OpenCV中数组至少是二维的,
    //		即使是一行或者一列的数组它们的点的坐标也应该有两个值。 
    // mask:可有可无的掩模。
    

    **说明:**参数若不需要,则置为NULL或者0,即可.

    函数实现:

    1.minMaxLoc()

    int main()
    {
    #pragma region min_max  
    	
    	float data[2][3] = { { 4.0,1.0,3.0 },{ 8.0,7.0,9.0 } };
    	Mat src(2, 3, CV_32FC1, data);
    	
    	float val = 0.0;
    	for (int j = 0; j < 2; j++)//row
    	{
    		for (int i = 0; i < 3; i++)//col
    		{ 
    			val = src.ptr<float>(j)[i];
    			cout << "(i,j) = " << i << "," << j << "\t" << val << endl;
    		}
    	}
     
    	//double minv, maxv;
    	//int idx_max[2], idx_min[2];
    	//minMaxIdx(src, &minv, &maxv, idx_min,idx_max);
    	//cout << "minv = " << minv << endl;
    	//cout << "idx_min = " << idx_min[0] << "," << "\t" << idx_min[1] << endl;
    	//cout << "maxv = " << maxv << endl;
    	//cout << "idx_max = " << idx_max[0] << "," << "\t" << idx_max[1] << endl;
     
    	double minv, maxv;
    	Point pt_min, pt_max;
    	minMaxLoc(src, &minv, &maxv, &pt_min, &pt_max);
    	cout << "minv = " << minv << endl;
    	cout << "idx_min = " << pt_min << endl;
    	cout << "maxv = " << maxv << endl;
    	cout << "idx_max = " << pt_max << endl;
     
     
     
    #pragma endregion  
     
    	return 0;
    }
    

    2.minMaxIdx()

    int main()
    {
    #pragma region min_max  
    	
    	float data[2][3] = { { 4.0,1.0,3.0 },{ 8.0,7.0,9.0 } };
    	Mat src(2, 3, CV_32FC1, data);
    	
    	float val = 0.0;
    	for (int j = 0; j < 2; j++)//row
    	{
    		for (int i = 0; i < 3; i++)//col
    		{ 
    			val = src.ptr<float>(j)[i];
    			cout << "(i,j) = " << i << "," << j << "\t" << val << endl;
    		}
    	}
     
    	double minv, maxv;
    	int idx_max[2], idx_min[2];
    	minMaxIdx(src, &minv, &maxv, idx_min,idx_max);
    	cout << "minv = " << minv << endl;
    	cout << "idx_min = " << idx_min[0] << "," << "\t" << idx_min[1] << endl;
    	cout << "maxv = " << maxv << endl;
    	cout << "idx_max = " << idx_max[0] << "," << "\t" << idx_max[1] << endl;
     
    #pragma endregion  
     
    	return 0;
    }
    

    注:文中程序部分复制自参考链接1。

    参考链接1
    参考链接2

    展开全文
  • 那么今天我们就来整理取出数组中最大值和最小值的一些方法。 法一:其实利用 ECMAScript5的 ...展开运算符可以很简单的解决这个问题 var arr=[2,7,3,10,22,11]; Math.max(...arr); //44 Mat...
  • 数组 var ary = [54,65,43,21,12,34,45,58,97,24]; 方法1 -字符串拼接法 ...利用toString或join把数组转换为字符串,再和Math的max和min方法分别进行拼接,最后执行eval方法 ...var min = eval("Mat...
  • 需要把拆分为一维数组,并出数组中所有数字里的最大值和最小值 代码为: var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(",");//转化为一维数组 alert(Math.max.apply(null,ta))...
  • 图像像素值统计图像像素最大值、最小值以及位置图像均值、标准差查找最大值、最小值APIpublic static MinMaxLocResult minMaxLoc(Mat src, Mat mask) 参数src:输入的图像矩阵参数mask:可选的掩码矩阵返回值 ...
  • //直接上代码,使用最大类间方差法进行二化...//出图像的最大和最小像素,确定阈值区间 double min_value_mat, max_value_mat; Point min_position_mat, max_position_mat; minMaxLoc(mat, &min_value_mat, &
  • OpenCV中的Mat阵列操作

    2014-05-23 22:17:06
    一、阵列的最大值和最小值
  • 本文使用多曝光对应区块内的熵大小来分配不同大小的权重,最后线性合成为新区块,从而实现使得曝光合成图片具备最多的LDR细节,代替由于硬件或者软件限制而无法实现的HDR效果。 #include <opencv2\opencv.hpp&...
  • 要想做到python语言因数方法,首先要明白其中的...3、总共有362880种可能,从中找出最大值因数中最小的数字和最大值因数中最大的数。好了,下面来看看python语言因数方法的实现源码:#coding:utf-8import mat...
  • 最大类间算法OSTU源码

    2019-08-23 14:51:37
    最大类间算法是取一个阈值,将图像分为两部分后,这两部分的像素平均的方差最大。计算过程如下: 设u1为第一部分的均值,u2第二部分的均值,w1为第一部分的像素所占的比例,w2为第一部分的像素所占的比例,即w1+...
  • 关于OpenCV中常见函数用法总结

    千次阅读 2017-03-14 18:30:22
    求Mat中的最大值以及最小值 三 randn()函数给图像添加高斯噪声 四 mean()函数的用法 五 系统计时器 六 矩阵之间的四则运算:gemm()函数 七 利用OpenCV如何实现在图像指定位置处生成填充的圆形图案 八 将相机中的...
  • 最近的一个月一直在根据项目的具体问题来学习一些新的算法,但是在写最大类间方差的时候由于调用了很多的mat类逻辑运算和求和运算来求最大方差,导致程序的运行时间直接跑到了4秒开外,所以最近准备学习我一开始就...
  • //将部分和继续作对比,求最大值 /*double max = 0.0; for (int i = 0; i ; i++) { if (max [i]) { max = partialMax_host[i]; } }*/ cudaEventRecord(stop1, 0); cudaEventSynchronize...
  • # k个质心向量的第j维数据值随机为位于(最小值,最大值)内的某一值 centroids[:, j] = minJ + rangeJ * np.random.rand(k, 1) # random.rand(行,列)产生这个形状的矩阵,且每个元素in [0,1) # 返回初始化得到...
  • %最大亮度 Min = min(CurRow_Bright); %取最小亮度 Lim = Max-Min; %该扫描线的极限亮度差 if (Lim>Thre) Ytop = Row1; break; end end for Row2 = Height:-1:(Height/2) %循环寻找圆形...
  • Java Math类的常用方法详解  在Java中Math 类封装了常用的数学运算,提供了基本的数学操作,如指数、对数、平方根和三角函数等。Math 类位于 java.lang 包, ...求最大值、最小值和绝对值问题,如果使用 Mat...
  • numpy常用方法

    2018-02-26 11:28:05
    平均 mean 方差 std 3numpy scipy pandas ...最大max最大的下标argmax nprandomuniformstart end size 13np的flatten vs ravel npmgrid 生成网格 15 npaminamax npminmax npvstacktuple nphstacktuple
  • 1.静态导入 JDK1.5开始的新功能 A: 格式 import static java.lang.Math.*;...例如:以前求最大值 格式 Math.Max(3,5); 现在求最大值 格式 Max(3,5); B:也可以单独导入某个方法 格式 import static java.lang.Mat
  • 1、矩阵行、列的最大值A、通过调用”max(A, dim)”函数矩阵A的行(dim=1)、列(dim=0)最大值。 B、示例#include #include using namespace arma; int main() { //矩阵的各行各列最大值 mat A = randu<mat>(3,...
  • 学习OpenCV:使用reduce

    2021-03-17 15:33:56
    行或列的平均值、和、最大值、最小值。 第三个参数为维度数,二维图像中等于0为列,等于1为行。 Mat srcMat = (cv::Mat_<uchar >(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9); vector<int>...
  • 2、梯度上升法:求最大值 梯度下降法:求最小值 3、list转化为matrix更易于计算 datamatrix=mat(datalist) m,n=shape(datamatrix) weights=ones((n,1)) h = sigmoid(dataMatrixweights)# (100,1) error =...
  • 介绍:膨胀就是局部最大值的操作。从数学角度讲,膨胀就是讲图像与核进行卷积。核与图像卷积,即计算核覆盖的区域的像素点的最大值,并把这个最大值赋值给参考点指定的像素。这样会使图像中的高亮区域逐渐增长。 ...
  • Java中Math类常用方法

    千次阅读 2019-03-19 15:28:56
    Java中Math类常用方法数学常量:常用方法:求绝对值:求最大值:求最小值:向四舍五入不常用方法:三角函数:反三角函数:其他: Math类是一个包含了很多数学常量与计算方法的类,里面的方法全是静态方法。Math类...
  • POJ 2253 最短路径变形

    2012-12-14 11:49:21
    //题意:从起点到终点会有很多路径,每条路径上的边有一个最大值这些最大值中的最小值 //算法过程,每次寻找最小的d值,然后如果d[j]>max(d[v],mat[v][j]),则更新d[j]=max(d[v],mat[v][j])
  • 抢劫一排住户,不能抢相邻的房屋,求最大抢劫量。 非负整数数组代表每个房屋存放的金额 思路 动态规划 定义 dp 数组用来存储最大抢劫量,其中 dp[i] 表示抢到第 i 个住户时的最大抢劫量。 由于不能抢相近的住户,...
  • UVA 108 - Maximum Sum

    2012-02-02 14:55:00
    出一个矩阵的最大和,我们可以按照...最后得出的就是所最大值。 #include<cstdio>#include<cstring>#include<cstdlib>#define MAXN 110int n, ans;int mat[MAXN][MAXN];int max( int a,...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

mat求最大值