应用 CV::P ow 时出错

error in applying cv::Pow

本文关键字:出错 ow CV 应用      更新时间:2023-10-16

我是塞尔瓦。我正在尝试为项目中的图像应用 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

有人已经在这里解释过了