马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
该函数重要用于为 直方图均衡化、CLAHE 等图像处理算法 生成一组等间距的灰度区间边界值(bins 或 levels),这些边界值可用于后续将图像分别为多个区域进行处理。
函数原型
- void cv::cuda::evenLevels
- (
- OutputArray levels,
- int nLevels,
- int lowerLevel,
- int upperLevel,
- Stream & stream = Stream::Null()
- )
复制代码 参数
- levels 目标数组。levels 具有 1 行、nLevels 列,类型为 CV_32SC1(即单通道 32 位有符号整型)。
- nLevels 计算出的灰度级数量。nLevels 必须至少为 2。
- lowerLevel 最低灰度级的下边界值(起始值)。
- upperLevel 最高灰度级的上边界值(竣事值)。
- stream 用于异步实行的流(Stream),可实现与主机的异步操作。
代码示例
- #include <opencv2/cudaimgproc.hpp>
- #include <opencv2/opencv.hpp>
- int main()
- {
- cv::Mat levels;
- int nLevels = 8;
- int lower = 0;
- int upper = 255;
- // 在 GPU 上生成均匀分布的灰度级
- cv::cuda::evenLevels( levels, nLevels, lower, upper );
- // 打印结果
- std::cout << "生成的灰度级边界值: " << std::endl;
- for ( int i = 0; i < levels.rows * levels.cols; ++i )
- {
- std::cout << levels.at< int >( i ) << " ";
- }
- std::cout << std::endl;
- return 0;
- }
复制代码 运行效果
- 生成的灰度级边界值:
- 0 37 74 111 147 183 219 255
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|