c++ opencv mat 最大值,数据类型

这个好像对的:

	cv::Mat image0 = cv::imread("../configs/bus.jpg", cv::IMREAD_UNCHANGED);

	cv::Mat dst = cv::Mat::zeros(image0.size(), CV_32FC3);
	image0.convertTo(dst, CV_32FC3);// , 10, -1);
	//dst.convertTo(dst, CV_32F,1/255);// , 10, -1);

	int bbb;
	bbb= 5;

	cv::Mat image_re = dst.reshape(1, 1);
	double minValue, maxValue;    // 最大值,最小值
	cv::Point  minIdx, maxIdx;    // 最小值坐标,最大值坐标     
	cv::minMaxLoc(image_re, &minValue, &maxValue, &minIdx, &maxIdx);
	std::cout <<",最大值:"<< maxValue << "最小值:" << minValue << std::endl;
	std::cout << "size "<< dst.size()<<"   " << image_re.size() << std::endl;
	std::cout << "最大值位置:" << maxIdx << "最小值位置:" << minIdx;

mat.type()函数

opencv中Mat存在各种类型,其中mat有一个type()的函数可以返回该Mat的类型。类型表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量。具体的有以下值:

通道数我们可以发现,C4=C3+8、C3=C2+8
在这里插入图片描述

c++ opencv mat 最大值

opencv4可以多通道计算,opencv3.4只能计算单通道图像。

img为mat:

double maxValue = *max_element(img.begin<double>(), img.end<double>());
double minValue = *min_element(img.begin<double>(), img.end<double>());

opencv4.4 上面的好像不准,下面的是对的

opencv3.4.8下面的报错,不知为啥?

	string timestr = DatetimeToString(timep);
		frame = cv::imread("E:\\bar1.jpg");

	
		//cv::imwrite(target_path + timestr + "_" + std::to_string(img_index) + ".jpg", frame);
		//int maxValue11 = *max_element(frame.begin<int>(), frame.end<int>());
		//int minValue11 = *min_element(frame.begin<int>(), frame.end<int>());
		cv::cvtColor(frame, frame, cv::COLOR_BGR2RGB);

		double minVal, maxVal;
		int    minIdx[2] = {}, maxIdx[2] = {};	// minnimum Index, maximum Inde
		minMaxIdx(frame, &minVal, &maxVal, minIdx, maxIdx);


		cout << "[m_min] = " << endl << minVal << endl;
		cout << "[m_max] = " << endl << maxVal << endl << endl;


#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
	uchar data[] = {
		10, 200, 5, 7, 9,
		15, 35, 60, 80, 170,
		100, 2, 55, 37, 70
	};
	Mat  m1(3, 5, CV_8U, data);
 
	Mat  m_min, m_max;						// minimum value, maximum value
 
	double minVal, maxVal;
	int    minIdx[2] = {}, maxIdx[2] = {};	// minnimum Index, maximum Index
		
	minMaxIdx(m1, &minVal, &maxVal, minIdx, maxIdx);
	
	cout << "[m1] = " << endl << m1 << endl << endl;
	cout << "[m_min] = " << endl << m_min << endl;
	cout << "[m_max] = " << endl << m_max << endl << endl;
	
	cout << "minimum value in m1  : " << minVal << endl;
	cout << "   minimum value's Index is : " << minIdx[1] << ", " << minIdx[0] << endl;
 
	cout << "maximum value in m1: " << maxVal << endl;
	cout << "    maxnimum value's Index is : " << maxIdx[1] << ", " << maxIdx[0] << endl << endl;
 
 
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值