【OpenCV 基础知识 11】计算通道像素值和

cvSplit()函数将复制src的各个通道到图像dst0,dst1,dst2和dst3中。如果源图像少于4个通道的情况下,那么传递给cvSplit()的不必要的目标参数可设置为NULL

program cv_Sum;{$APPTYPE CONSOLE}
{$R *.res}usesSystem.SysUtils,ocv.highgui_c,ocv.core_c,ocv.core.types_c,ocv.imgproc_c,ocv.imgproc.types_c,uResourcePaths;const// filename = cResourceMedia + 'cat2.jpg';varimg: pIplImage;channels: array [0 .. 2] of pIplImage;BGRSum: Array [0 .. 2] of TCvScalar;i, total: Integer;begintry// 加载图像文件img := cvLoadImage(filename, 1);// 创建三个单通道图像,用于分离图像的蓝色、绿色和红色通道for i := 0 to 2 dochannels[i] := cvCreateImage(cvGetSize(img), 8, 1);// 将图像分离为三个通道cvSplit(img, channels[0], channels[1], channels[2]);// 计算每个通道的像素值之和for i := 0 to 2 doBGRSum[i] := cvSum(channels[i]);// 计算图像的总像素值total := img^.width * img^.height * 255;WriteLn('Color percentage of RGB(ex red 50%, green 25% and blue %25) in an image is');WriteLn('red:   ', BGRSum[2].val[0] / total * 100:2:2);WriteLn('green: ', BGRSum[1].val[0] / total * 100:2:2);WriteLn('blue:  ', BGRSum[0].val[0] / total * 100:2:2);readln;excepton E: Exception doWriteLn(E.ClassName, ': ', E.Message);end;end.
  • img^:这表示你正在访问一个指针所指向的结构体或记录的内容。在这里,img 是一个指向图像数据的指针。
  • img^.width:这是图像的宽度,以像素为单位。
  • img^.height:这是图像的高度,以像素为单位。
  • 255:这是灰度图像的每个像素的可能的最大灰度值。

因此,img^.width * img^.height * 255 就是图像中可能的最大灰度值的总数。在灰度图像中,每个像素的灰度值通常介于 0 到 255 之间,因此这个计算就得到了整个图像的所有可能灰度值的总数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/15134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端基于word模板导出word文档

项目环境 vue2 js vue-cli等 依赖包都可以在npm官网找到对应文档 npm官网(英文) 1、依赖 安装依赖 docxtemplater npm i docxtemplaterfile-saver npm i file-saverjszip-utils npm i jszip-utilsjszip npm i jszip在对应页面或模块中引入依赖 import Docxtemplater …

QQ个性网空间日志网站模板源码

QQ个性网空间日志网站模板源码自带后台登录设置,适用于博客、文章、资讯、其他类网站内容使用。模板自带eyoucms内核,原创设计、手工书写DIVCSS,完美兼容IE7、Firefox、Chrome、360浏览器等;主流浏览器;结构容易优化;多终端均可正常预览。由于…

力扣刷题---2206. 将数组划分成相等数对【简单】

题目描述🍗 给你一个整数数组 nums ,它包含 2 * n 个整数。 你需要将 nums 划分成 n 个数对,满足: 每个元素 只属于一个 数对。 同一数对中的元素 相等 。 如果可以将 nums 划分成 n 个数对,请你返回 true &#xf…

react 低代码平台方案汇总

React作为当前最流行的前端框架之一,其生态系统中孕育了多种低代码平台方案,旨在加速应用开发过程。以下是几款基于React的低代码平台或工具,它们通过可视化构建、预制组件、数据绑定等功能,帮助开发者快速构建应用程序&#xff1…

【Tools】SpringBoot工程下的全局异常处理

Catalog SpringBoot工程下的全局异常处理一、需求二、实现 SpringBoot工程下的全局异常处理 一、需求 程序运行过程中没法保证一定不会出错,即程序中会报异常,而系统默认的异常信息的格式往往和我们自定义返回的消息格式不一致,还会影响返回…

力扣刷题---3146. 两个字符串的排列差

题目描述 给你两个字符串 s 和 t,每个字符串中的字符都不重复,且 t 是 s 的一个排列。 排列差 定义为 s 和 t 中每个字符在两个字符串中位置的绝对差值之和。 返回 s 和 t 之间的 排列差 。 示例 1: 输入:s “abc”, t “b…

AcWing 154. 滑动窗口——算法基础课题解

AcWing 154. 滑动窗口 题目描述 给定一个大小为 n≤10^6 的数组。 有一个大小为 𝑘 的滑动窗口,它从数组的最左边移动到最右边。 你只能在窗口中看到 𝑘 个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为…

运用HTML、CSS设计Web网页——“西式甜品网”图例及代码

目录 一、效果展示图 二、设计分析 1.整体效果分析 2.头部header模块效果分析 3.导航及banner模块效果分析 4.分类classify模块效果分析 5.产品展示show模块效果分析 6.版权banquan模块效果分析 三、HTML、CSS代码分模块展示 1. 头部header模块代码 2.导航及bann…

【SpringCloud】Spring Cloud基本介绍

目录 回顾架构分类单体架构分布式架构微服务架构什么是微服务优点缺点微服务的架构特征:微服务架构面临的挑战技术挑战微服架构的设计原则微服务概念提供者(Provider)消费者(Consumer)RPC和Restful集群分布式 总结 服务拆分和远程调用服务拆分原则服务拆分示例 思考…

docker和docker-compose安装

1.安装docker 安装所需的软件包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2#设置阿里源 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新软件包索引 sudo yum makecache fast查询可安装…

力扣爆刷第143天之二叉树五连刷(二叉搜索树)

力扣爆刷第143天之二叉树五连刷(二叉搜索树) 文章目录 力扣爆刷第143天之二叉树五连刷(二叉搜索树)一、530. 二叉搜索树的最小绝对差二、501. 二叉搜索树中的众数三、236. 二叉树的最近公共祖先四、235. 二叉搜索树的最近公共祖先…

http项目改为/支持https的方案、无需修改后台代码

背景描述:原来的项目前后台都是http,现在某个服务要求前台必须使用https; 方案1:前台部署在https里,后面代码修改;但是微服务架构,后台工作量太大; 方案2:前台部署在ht…

Pytorch-08 实战:手写数字识别

手写数字识别项目在机器学习中经常被用作入门练习,因为它相对简单,但又涵盖了许多基本的概念。这个项目可以视为机器学习中的 “Hello World”,因为它涉及到数据收集、特征提取、模型选择、训练和评估等机器学习中的基本步骤,所以…

vue 打印、自定义打印、页面打印、隐藏页眉页脚

花了一天时间搞了个打印功能,现则将整体实现过程进行整理分享。先来看看效果图: 1、页面展示为: 2、重组页面打印格式为:这里重组页面的原因是客户要求为一行两列打印 !内容过于多的行则独占一行显示完整。 整体实现&…

区块链论文总结速读--CCF A会议 USENIX Security 2024 共7篇 附pdf下载

Conference:33rd USENIX Security Symposium CCF level:CCF A Categories:网络与信息安全 Year:2024 Num:7 1 Title: Practical Security Analysis of Zero-Knowledge Proof Circuits 零知识证明电路的实用安全…

hbase版本从1.2升级到2.1 spark读取hive数据写入hbase 批量写入类不存在问题

在hbase1.2版本中&#xff0c;pom.xml中引入hbase-server1.2…0和hbase-client1.2.0就已经可以有如下图的类。但是在hbase2.1.0版本中增加这两个不行。hbase-server2.1.0中没有mapred包&#xff0c;同时mapreduce下就2个类。版本已经不支持。 <dependency><groupId>…

安全访问python字典:避免空键错误的艺术

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、直接访问字典键的问题 三、使用get方法安全访问字典键 四、get方法的实际应…

Could not create connection to database server的错误原因

1、使用MyBatis 连接数据库报错 org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. ### The error may …

流量卡激活先交100块钱,这个确定不是套路吗?

很多第一次申请流量卡的时候&#xff0c;在激活的时候都会问的一个问题&#xff0c;为什么激活时都要先交100块钱&#xff0c;这个确定不是套路吗 ​  先说一下&#xff0c;首充其实并不是商家的要求&#xff0c;准确来说是运营商的要求&#xff0c;目前运营商推出的线上流量…

用队列实现栈,用栈实现队列

有两个地方会讨论到栈&#xff0c;一个是程序运行的栈空间&#xff0c;一个是数据结构中的栈&#xff0c;本文中讨论的是后者。 栈是一个先入后出&#xff0c;后入先出的数据结构&#xff0c;只能操作栈顶。栈有两个操作&#xff0c;push 和 pop&#xff0c;push 是向将数据压…