基质中的最小强度
Minimum intensity in matrix
本文关键字:小强 更新时间:2023-10-16
我创建了以下函数来使用 opencv 计算图像矩阵中强度最小的点。但是,我总是将点 0,0 作为最小强度的点,并且强度值也像 -2142484923 一样荒谬。有人可以帮忙吗?
img 是输入图像矩阵,Minloc 以最小强度返回 cvPoint。
int min_Loc(Mat img, Point minloc)
{
cvtColor(img, img, CV_RGB2GRAY);
int x1;
int y1;
int x2;
int y2;
x1 = 0;
x2 = img.rows;
y1 = 0;
y2 = img.cols;
int min = std::numeric_limits< int >::max();
int currentval;
for (int j=y1; j<y2; j++)
{
for (int i=x1; i<x2; i++){
currentval = img.at<int>(j,i);
if(currentval < min){
min = std::min<int>( currentval, min );
minloc.x = i;
minloc.y = j;
}
}
}
return min;
}
你的函数
int min_Loc(Mat img, Point minloc)
不返回明洛克。它返回一个整数,并按值获取一个垫子和一个点。如果您希望能够修改 minloc 的值并在调用 min_Loc() 后保留该值,则应使用指针或引用作为参数,例如:
int min_loc(Mat * img, Point * minloc)
{
...
minloc->x = i;
minloc->y = j;
...
return min;
}
对该函数的调用如下所示:
min_loc(&img, &minloc);
这假设您在该调用之前有类似以下内容的某个地方:
Mat img = ...;
Point minloc = ...;
更多信息:何时通过引用传递以及何时通过指针传递C++?
请注意,OpenCV 提供了在函数 cv::minMaxLoc 中查找(单通道)矩阵的最小值和最大值及其位置的功能
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- Qt VTK交互风格的信号到小部件
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 使用递归的数组的最小值.这是怎么回事
- 为什么在浮点中从大到小会引入更多的误差
- 找到两对数字,使它们的乘积的绝对差最小化
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 如何在QT中的自定义视频小工具t上绘制矩形
- 在二维数组中查找最小值和最大值?
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 如何找到大于整数的最小数字
- 小字符串优化(调试与发布模式)
- QtDesigner自定义小部件
- 字节真的是最小可寻址单元吗
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?