当前位置: 首页 > news >正文

【OpenCV C++】如何快速 高效的计算出图像中大于值的像素个数? 遍历比较吗? No,效率太低!那么如何更高效?

文章目录

  • 1 问题
  • 2 分析
  • 3 代码实现 (两种方法实现)
    • 方法1: 使用cv::compare
    • 方法2: 使用cv::threshold
    • 3.2 compare和threshold 看起来都有二值化效果? 那么二者效率?
  • 4 compare函数解释
    • 4.1 参数解释
    • 4.2 底层行为规则
    • 4.3 应用示例
    • 4.4 典型应用场景

1 问题

一幅图像的目标区域ROI尺寸为60*35的灰度图,快速计算出大于backVal的像素个数,其中backVal=200;
(注意这里只统计ROI区域的像素个数,一般来说只对目标区域处理,便于提高效率)
在这里插入图片描述

2 分析

思路1:是遍历每个像素,然后比较是否大于200,统计次数。但这样做效率可能不高,尤其是当图像较大时。不过这里图像是60x35,不算太大,可能直接遍历也行。不过有没有更高效的方法呢?

记得OpenCV有一些矩阵操作函数,可能可以利用这些函数来避免显式循环。比如,比较操作可以用cv::compare或者直接使用矩阵表达式。然后统计非零元素的数量。这可能比逐个像素判断要快,尤其是对于较大的图像。

步骤:

  • 1.读取图像,确保是灰度图(单通道)。
  • 2.使用比较函数,将图像与backVal(200)进行比较,生成一个二值图像&

相关文章:

  • Java中的消息中间件对比与解析:RocketMQ vs RabbitMQ
  • C++实现rabbitmq生产者消费者
  • 蓝桥杯2023年第十四届省赛真题-子矩阵
  • Windows 图形显示驱动开发-WDDM 3.0功能- 硬件翻转队列(五)
  • C语言每日一练——day_7
  • ASP3605抗辐照加固同步降压调节器——商业航天电源芯片解决方案新选择
  • 鸿蒙下载文件保存到手机本地公共文件夹下、将本地的沙箱目录文件,保存到公共目录,鸿蒙picker save保存文件为空(0字节)的问题
  • windows命令:创建和打开文件
  • React + Node.js实践 仿B站评论
  • JavaScript 编程:从基础到高级应用的全面探索
  • 嵌入式开发之STM32学习笔记day08
  • ffmpeg库视频硬编码使用流程
  • Redis哨兵模式-黑马学习笔记
  • STM32F429单片机FMC接口驱动TFT LCD和SDRAM
  • Flutter Dart 泛型详解
  • OpenCV图像拼接(4)图像拼接模块的一个匹配器类cv::detail::BestOf2NearestRangeMatcher
  • 【论文阅读】CARES:医学视觉语言模型可信度的综合基准
  • 2025-03-17 学习记录--C/C++-PTA 习题4-7 最大公约数和最小公倍数
  • 汇编移位指令
  • 读取Table的结构转换为Model类
  • 人社部:将会同更多部门分行业、分领域制定专项培训计划
  • 海南旅文局通报游客入住酒店港币被调包:成立调查组赴陵水调查
  • 全球首台环形CT直线加速器在沪正式开机,系我国自主研发
  • 伊朗阿巴斯港港口爆炸已致47人受伤
  • 我国首次发布铁线礁、牛轭礁珊瑚礁“体检”报告,菲炮制言论毫无科学和事实依据
  • 技术派|“会飞的手榴弹”:微型无人机将深刻改变单兵作战方式