我对OpenCV比较陌生,而且我遇到了问题.我有一个输入图像,想要将它从Type CV_8U转换为CV_32F.
对于一些图像,它工作得很好,input.convertTo(output, CV_32F)
但与其他图像输出只会给出一个完整的白色图像.
通道数量,调光量等于深度.问题是什么?
我目前正在与OpenCV/C++的一个非常奇怪的行为作斗争.这就是我在做的事情:
更新1:这里有更多信息:
我计算一组像素的梯度方向,并将它们存储在double
自我声明的字段中struct
.struct元素存储在向量中.
myfunct1() {
(...)
c.grad_orientation = (sum_ori / highgrads.size()) + M_PI; // +M_PI because i just want to rotate the angle around 180°.
(...)
my_struct_vector.push_back(c);
}
Run Code Online (Sandbox Code Playgroud)
我后来有几个c
存储在一个向量中,想要估计每个单独的平均值grad_orientation
,存储在我的向量的每个struct-element中,如下所示:
myfunct0() {
myfunct1(); //adds element to the my_struct_vector
(...)
int n = 0;
double total_ori = 0.0;
for (uint i = 0; i < my_struct_vector.size(); ++i) {
total_ori += my_struct_vector[i].grad_orientation;
n++;
}
azimuth = (total_ori / n);
cout << "Average: " << azimuth …
Run Code Online (Sandbox Code Playgroud)