c++ - 如何从向量中获取最小值和最大值2D图像的集合opencv c ++
问题描述
我想从一组灰色图像中获取min
&值。max
我需要将此代码转换matlab
为c++
使用opencv
.
代码是:
qGrey(1) = min(min(reff(:))); qGrey(2) = max(max(reff(:)));
reff
是3 D {25,171,121}
,25
是图像的数量。我试过minMaxLoc
&minMaxIdx
但它只适用于一张图片。
解决方案
要获得cv::Mat
包含最大元素,您可以使用:
auto it = std::max_element(v.begin(), v.end(), [](cv::Mat a, cv::Mat b) -> bool {
double max_a, max_b;
cv::minMaxLoc(a, nullptr, &max_a);
cv::minMaxLoc(b, nullptr, &max_b);
return max_a < max_b;
});
cv::Mat max_mat = *it; //max_element returns iterator pointing to max element
cv::Mat
要从所有s 中获取最大值,std::vector
您可以使用:
double all_max = 0., all_min = 0.;
cv::minMaxLoc(vec[0], &all_min, &all_max);
for(int i=1; i<vec.size(); i++) {
double tmp_min = 0., tmp_max = 0.;
cv::minMaxLoc(vec[i], &tmp_min , &tmp_max);
if(tmp_max > all_max) all_max = tmp_max;
if(tmp_min < all_min) all_min = tmp_min;
}
推荐阅读
- python - 如何正确使用 matplotlib 在同一张图片中获取两个图形
- jtag - 无法在 Mac 上安装和配置 J-Link JTAG 调试器
- android - Android Studio 中的 Dagger2 问题
- python - 无法在 pyFMI 中运行 FMU?
- html - 在下拉选择菜单中调整位置
- python - 以 CSV 格式读取和导出
- android - Recycler 视图显示 Room 数据库中的所有数据,而不仅仅是显示所选 id 的数据
- kotlin - 带有来自 arrays.xml 的值的 Android kotlin 首选项微调器
- excel - 如何使用 Excel 宏 VBA 创建一个新文件,其中数字作为初始文件中工作表中的值?
- vb.net - VB.Net 访问不同对象上的同一个成员