OpenCV(九):LUT查找表

LUT(Look-Up Table)查找表是OpenCV中一种常用的图像处理方法,用于对图像进行像素级别的颜色映射或图像增强操作。LUT查找表可以实现快速、高效的颜色转换和像素操作,尤其在处理大量像素的情况下具有优势。以下是关于OpenCV LUT查找表的一些重要知识点:

1.LUT数据结构:在OpenCV中,LUT查找表通常是一个一维数组或矩阵,其大小通常为256个元素(对于8位图像)。每个元素表示一种颜色或灰度级的映射。可以通过修改查找表中的元素来实现颜色的映射或像素操作。

2.查找表映射:将LUT查找表应用于图像时,可以使用OpenCV的cv::LUT函数进行映射。该函数的原型如下:

void cv::LUT(InputArray src, InputArray lut, OutputArray dst);

  • src:输入图像,可以是单通道或多通道的。
  • lut:查找表,通常是创建的LUT数据结构。
  • dst:输出图像,与输入图像具有相同的大小和类型。

3.创建四通道的LUT查找表矩阵,使用LUT函数进行映射

//将bitmap转化为Mat类Mat image(info.height, info.width, CV_8UC4, pixels);uchar lutFirst[256];for(int i=0;i<256;i++){if(i<=100)lutFirst[i]=0;if(i>100&&i<=200)lutFirst[i]=100;if(i>200)lutFirst[i]=255;}Mat lutOne(1,256,CV_8UC1,lutFirst);//LUT查找表第二层uchar lutSecond[256];for(int i=0;i<256;i++) {if (i <= 100)lutSecond[i] = 0;if (i > 100 && i <= 150)lutSecond[i] = 100;if (i > 150 && i <= 200)lutSecond[i] = 150;if (i > 200)lutSecond[i] = 255;}Mat lutTow(1,256,CV_8UC1,lutSecond);//LUT查找表第三层uchar lutThird[256];for(int i=0;i<256;i++) {if (i <= 100)lutThird[i] = 200;if (i > 100 && i <= 200)lutThird[i] = 200;if (i > 200)lutThird[i] = 255;}Mat lutThree(1,256,CV_8UC1,lutThird);//LUT查找表第四层uchar lutFour[256];for(int i=0;i<256;i++) {if (i <= 100)lutFour[i] = 200;if (i > 100 && i <= 200)lutFour[i] = 200;if (i > 200)lutFour[i] = 255;}Mat lutfour(1,256,CV_8UC1,lutFour);//拥有四通道的LUT查找表矩阵vector<Mat> mergeMats;mergeMats.push_back(lutOne);mergeMats.push_back(lutTow);mergeMats.push_back(lutThree);mergeMats.push_back(lutfour);Mat LutTree;merge(mergeMats,LutTree);Mat gray,out0,out1,out2;cvtColor(image,gray,COLOR_BGR2GRAY);LUT(gray,lutOne,out0);LUT(image,lutOne,out1);LUT(image,LutTree,out2);imwrite("/sdcard/DCIM/out0.jpg",out0);imwrite("/sdcard/DCIM/out1.jpg",out1);imwrite("/sdcard/DCIM/out2.jpg",out2);

    out0                                               out1                                                   out2

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

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

相关文章

Spring Boot Actuator的Env端点存在本地文件包含(LFI)漏洞CVE-2020-5421

文章目录 0.前言1.参考文档2.基础介绍3.漏洞利用原理3.解决方案1. 升级Spring Boot版本2. 限制端点的访问3. 禁用环境端点4. 不公开敏感的Actuator端点5. 开启安全审计 0.前言 背景&#xff1a; Spring Boot Actuator的Env端点存在本地文件包含(LFI)漏洞CVE-2020-5421。被扫描到…

kubernetes deploy standalone mysql demo

kubernetes 集群内部署 单节点 mysql ansible all -m shell -a "mkdir -p /mnt/mysql/data"cat mysql-pv-pvc.yaml apiVersion: v1 kind: PersistentVolume metadata:name: mysql-pv-volumelabels:type: local spec:storageClassName: manualcapacity:storage: 5Gi…

接口测试json入参,不同类型参数格式书写

接口json入参&#xff0c;不同类型参数格式 1、String 入参&#xff1a;A&#xff08;String&#xff09;&#xff0c;B&#xff08;String&#xff09; 格式&#xff1a;{"A":"值a","B":"值b"} 示例&#xff1a; 接口测试入参这么…

【MYSQL】排序时 如何将0排到最后,并让其他值按正序展示?

背景&#xff1a;展示排名时需要1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;这样展示但是有些没有排名得数据字段默认值时0&#xff0c;这时直接用ASC就会出现问题 实现效果 实现方式&#xff1a;使用MySQL的ORDER BY语句来实现。以下是一个示例的SQL查…

AI聊天机器人平台Poe发布更新;自然语言理解课程概要

&#x1f989; AI新闻 &#x1f680; AI聊天机器人平台Poe发布更新 突破功能限制 增加企业级服务 摘要&#xff1a;知名问答网站Quora旗下的AI聊天机器人平台Poe发布了一系列更新&#xff0c;包括推出Mac应用、支持同时进行多个对话、接入Meta的Llama 2模型等功能。用户只需支…

十七、命令模式

一、什么是命令模式 命令&#xff08;Command&#xff09;模式的定义&#xff1a;将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行储存、传递、调用、增加与管理。   命令…

SQL注入漏洞复现(CVE-2017-8917)

文章目录 搭建环境启动环境漏洞复现报错注入使用sqlmap 前提条件&#xff1a; 1.安装docker docker pull medicean/vulapps:j_joomla_22.安装docker-compose docker run -d -p 8000:80 medicean/vulapps:j_joomla_23.下载vulhub Docker Compose是 docker 提供的一个命令行工具&…

学习pytorch7 神经网络的基本骨架--nn,module的使用

神经网络的基本骨架--nn,module的使用 官网Module介绍Python父类子类继承关系前向神经网络pycharm快捷键重写类方法codedebug B站小土堆视频学习笔记 官网Module介绍 https://pytorch.org/docs/stable/generated/torch.nn.Module.html#torch.nn.Module Python父类子类继承关系…

1.8.6 练习 本科生学平均分绩点GPA计算(堆数组的应用)

C自学精简教程 目录(必读) 上大学要考试 我们读大学也要上课&#xff0c;上课也要考试的。 基本上每门课也都是满分100分。 虽然选择一个专业要上很多门课&#xff0c;每门课也都是100分&#xff0c;但是这些课程的“价值”却是不一样的。 有的课程是核心专业课&#xff1…

《游戏编程模式》学习笔记(九)游戏循环 Sequencing Patterns

定义 一个游戏循环会在游玩时不断运行。 每一次循环&#xff0c;它都会无阻塞地处理玩家的输入&#xff0c;更新游戏的状态&#xff0c;渲染游戏。它追踪时间的消耗并控制游戏的速度。游戏循环需要做到始终以固定的速度运行游戏。 一个游戏循环中通常包含处理输入部分&#xf…

设计模式的使用——模板方法模式+动态代理模式

一、需求介绍 现有自己写的的一套审批流程逻辑&#xff0c;由于代码重构&#xff0c;需要把以前的很多业务加上审批的功能&#xff0c;再执行完审批与原有业务之后&#xff0c;生成一个任务&#xff0c;然后再统一处理一个任务&#xff08;本来是通过数据库作业去处理的&#x…

上海炒股开户哪个证券公司好?找谁能开低佣金的账户?

在上海炒股开户选择哪家券商都可以&#xff0c;但是要拿到低佣金的账户就有点难度了。上海&#xff0c;简称“沪&#xff0c;是国务院批复确定的中国国际经济、金融、贸易、航运、科技创新中心&#xff01;正是如此&#xff0c;上海地区的券商公司也是非常之多的&#xff0c;这…