Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 应用cv::Pow时出错_C++_Opencv - Fatal编程技术网

C++ 应用cv::Pow时出错

C++ 应用cv::Pow时出错,c++,opencv,C++,Opencv,我是塞尔瓦。我正在尝试将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.

我是塞尔瓦。我正在尝试将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))`
`cv::Mat src=imread(“123.png”,0);
cv::Mat dest(src.size(),cv_8UC1);

对于(int i=0;i而言,问题在于您已经将其从无符号字符(UC)转换为32位浮点。您已经转换了源类型,但没有转换目标类型。这里有些东西丢失了

键入您的
pow
,将其转换为
CV_32FC1
,然后重试。此外,检查convertTo方法所需的比例因子。它在OpenCV文档中-


有人已经解释过了

它显示了错误。你想用CV_32FC1或CV_32C1检查吗?我也试过用CV_32FC1,但错误是一样的。我已经将dest类型更改为CV_32FC1。我可以再次将其转换为无符号字符吗?检查更新的答案,然后从头开始尝试。我已经像这样更改了代码,它可以工作,
Mat src=imread(“123.bmp”,0);cv::Mat dest(src.size(),cv_32FC1);src.convertTo(src,cv_32FC1,1.0/255.0);cv::pow(src,2.0,dest);dest.convertTo(dest,cv_8uc1255);
谢谢您的时间。