一些帧的平均值/使用c++和opencv获得错误
average of some frames / getting error using c++ and opencv
我想得到5帧的平均值,它们的Itime等于1000。我的代码有什么问题?为什么我在返回部分出错?
float Data::HighestTime(float *distances){
Mat mean_distances;
if(Itime=1000){
for(int i=0; i<5; i++){
cv::Mat matDistances = Mat(width, height, CV_32FC1, distances);
Mat mean_distances = matDistances;
mean_distances = mean_distances * (1/5);
}
}
return mean_distances;
}
版本后:
cv::Mat Data::HighestTime(float *distances){
Mat mean_distances;
if(Itime=1000){
for(int i=0; i<5; i++){
cv::Mat matDistances = Mat(width, height, CV_32FC1, distances);
Mat mean_distances = matDistances;
mean_distances = mean_distances * (1/5);
}
}
return mean_distances;
}
我有一个新错误:
假设我有这个功能:
cv::Mat Data::HighestTime(float* distances){
Mat mean_distances;
return mean_distances;
}
我想在这个函数中使用它的返回值:
void Data::Filter(){
HighestTime(float* distances);
medianBlur(mean_distances, mean_distances, ksize);
}
它抱怨没有定义mean_dinstances!我应该把它定义为函数的参数吗?
有一些事情需要考虑。
Itime==1000
,因为您不想将1000分配给Itime
此外,什么是float *distances
?我认为它是一个指向数组的指针,因此,您必须增加指针并用*(distances + i)
取消引用它
当你喜欢计算平均值时,你必须计算平均值,这是通过以下方式完成的:
- 将所有值相加:
meanDistances += matDistances;
- 将总和除以值的数量:
meanDistances /= 5.0f
(这里需要5.0,因为你不想有类似于0的(1/5)这样的整数除数)
函数确实返回类型为float
的值。您得到了一个编译器错误,因为您实际返回的是mean_distances
,它属于cv::Mat
类型。只需将方法的签名更改为Mat Data::HighestTime(float *distances)
即可消除该错误。
编辑:
至于你的第二个错误。实际上,您必须保存调用HighestTime
返回的值。你的第二个功能应该是:
void Data::Filter(){
Mat mean_distances = HighestTime(float* distances);
medianBlur(mean_distances, mean_distances, ksize);
}
相关文章:
- OpenCV 3 错误"CV_FOURCC":找不到标识符
- OpenCV 错误:相机校准:断言在matrix_wrap.cpp失败
- 使用 c++ 构建时出现 Opencv 错误
- OpenCV(3.4.1) 错误:断言失败(变暗 <= 2 && step[0] > 0) in cv::Mat::locateROI
- OpenCV 错误:断言失败 - 矩阵减去
- OpenCV 错误:断言在 cv::Mat 行 522 中失败
- OpenCV 错误的解决方案:不支持的格式或格式组合 - 当将 ORB 功能与 FlannBasedMatcher 匹配
- OPENCV.3.0错误:0xc0000005:访问违规读取位置0x00000000
- 在Raspberry Pi上构建时OpenCV错误
- OPENCV错误在XCode 8中加载Fisher面部识别器时
- OpenCV 错误:ERClassifierNM1 中的错误参数
- OpenCV 错误:断言失败(((((sizeof(size_t)<<28)|0x8442211)....957路
- 使用CV :: ML :: STATMODEL :: TRAIN使用KNN的OPENCV错误
- C++ / CannyEdgeDetection.exe 已停止工作 代码块 /OpenCV 错误:断言失败
- OPENCV错误在Ubuntu14.04上编译CAFFE-1.0时
- OPENCV错误:不良的参数(字节必须为16、32或64)在简介Descriptorextractorimpl中
- OPENCV错误:未指定的错误(未实现该函数)
- OpenCV 错误:“MAT”不是“cv”的成员
- 测试构建C++包装器时出现 OpenCV 错误
- 如何修复此 OpenCV 错误:断言失败((无符号)i < (无符号)cn) 在 cv::Vec<unsigned char,3>:::运算符 (), 文件