应用 CV::P ow 时出错
error in applying cv::Pow
我是塞尔瓦。我正在尝试为项目中的图像应用 pow 值 2.0。我能够使用以下方法应用 pow。
`cv::Mat src = imread("123.png",0);
cv::Mat dest ( src.size(), CV_8UC1);
for( int i=0; i<src.rows; i++)
for(int j=0; j<src.cols; j++)
dest.at<uchar>(i,j) = (int) (255* std::pow(src.at<uchar>(i,j)/255.0,val))`
但这会增加执行时间。我正在尝试通过以下方式实现 pow 转换 (GAMMA),
Mat src = imread("123.png",0);
cv::Mat dest(src.size(),CV_8UC1);
src.convertTo(src,CV_32FC1);
cv::pow(src,2.0,dest);
我得到了一个完整的白色图像。我不知道在我的代码中要更改什么才能获得正确的输出。帮我解决这个问题,谢谢。
问题是您已将其从未符号字符 (UC) 转换为 32 位浮点数。您已转换源,但未转换目标类型。这里有些东西丢失了。
您的pow
类型,将其转换为CV_32FC1
,然后重试。此外,请检查 convertTo 方法所需的比例因子。它在OpenCV文档中 - http://docs.opencv.org/doc/user_guide/ug_mat.html
有人已经在这里解释过了
相关文章:
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 在Google Kick start中提交时出错
- 在c++中访问int到类对象的映射时出错
- 分段错误当我试图运行程序时出错
- 使用dynamic_cast和构造函数时出错
- CHECK(调用)函数在Google Colab中出错
- 用pybind11包装C++抽象类时出错
- 为x86而非x64编译时出错
- 从R调用C++函数并对其进行集成时出错
- 这个函数哪里出错了
- C++ 创建包含链表和字符串的对象的链接列表时出错
- 为重写std::exception的库生成swig接口时出错
- 导入/导出变量时出错
- 应用 CV::P ow 时出错