什么是网站推广?,a站,做网站用到什么技术,庐江网站建设操作系统#xff1a;ubuntu22.04 OpenCV版本#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言#xff1a;C11
算法描述
将源图像的平方加到累积器图像中。 该函数将输入图像 src 或其选定区域提升到2的幂次方#xff0c;然后加到累积器 dst 中#xff1a; dst ( … 操作系统ubuntu22.04 OpenCV版本OpenCV4.9 IDE:Visual Studio Code 编程语言C11
算法描述
将源图像的平方加到累积器图像中。 该函数将输入图像 src 或其选定区域提升到2的幂次方然后加到累积器 dst 中 dst ( x , y ) ← dst ( x , y ) src ( x , y ) 2 if mask ( x , y ) ≠ 0 \texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) \texttt{src} (x,y)^2 \quad \text{if} \quad \texttt{mask} (x,y) \ne 0 dst(x,y)←dst(x,y)src(x,y)2ifmask(x,y)0 函数支持多通道图像。每个通道独立处理。
函数原型 void cv::accumulateSquare
(InputArray src,InputOutputArray dst,InputArray mask noArray()
) 参数
参数src 输入图像可以是单通道或三通道8位或32位浮点数。参数dst 累积器图像通道数与输入图像相同32位或64位浮点数。参数mask 可选的操作掩码。
代码示例 #include iostream
#include opencv2/opencv.hppint main()
{// 加载图像cv::Mat frame cv::imread( /media/dingxin/data/study/OpenCV/sources/images/hawk.jpg, cv::IMREAD_GRAYSCALE );if ( !frame.data ){std::cout Could not open or find the image std::endl;return -1;}// 初始化累积平方和cv::Mat sqSum cv::Mat::zeros( frame.size(), CV_32F );// 模拟多帧累积for ( int i 0; i 100; i ){// 使用同一图像多次以模拟多帧情况cv::accumulateSquare( frame, sqSum );}// 防止累积平方和为0的情况sqSum 1; // 添加一个小常数避免分母为0// 计算累积平方和的最大值double maxVal;cv::minMaxLoc( sqSum, nullptr, maxVal );// 将累积平方和转换回8位图像以便保存sqSum.convertTo( sqSum, CV_8U, 255.0 / maxVal ); // 归一化// 显示原始图像cv::imshow( Original Image, frame );// 显示累积平方和结果图像cv::imshow( Accumulated Square Result, sqSum );// 等待按键以便查看图像cv::waitKey( 0 );// 关闭所有窗口cv::destroyAllWindows();// 保存结果cv::imwrite( accumulated_square_result.jpg, sqSum );return 0;
}运行结果