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

Opencv-图像插值与LUT查找表

图像像素的比较

白色是255,黑色是0

min(InputArray src1,InputArray src2,OutputArray dst)
max(InputArray src1,InputArray src2,OutpurArray dst
  • src1:第一个图像矩阵,通道数任意
  • src2:第二个图像矩阵,尺寸和通道数以及数据类型都需要与src1一致
  • dst:保留对应位置较大(较小)灰度值后的图像矩阵,尺寸、通道数和数据类型与src1一致

LUT查找表

LUT查找表实际上就是一种映射规则
在这里插入图片描述

LUT(InputArray src,InputArray lut,OutputArray dst)
src:输入图像矩阵,其数据类型只能是CV_8U
lut:256个像素灰度值的查找表,单通道或者与src通道数相同
dst:输出图像矩阵,其尺寸与src相同,数据类型与lut相同
	//LUT查找表第一层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 lutTwo(1, 256, CV_8UC1, lutFirst);//LUT查找表第三层uchar lutThird[256];for (int i = 0; i < 256; i++){if (i <= 100)lutThird[i] = 100;if (i > 100 && i <= 200)lutThird[i] = 200;if (i > 200)lutThird[i] = 255;}Mat lutThree(1, 256, CV_8UC1, lutThird);//拥有三通道的LUT查找表矩阵vector<Mat>mergeMats;mergeMats.push_back(lutOne);mergeMats.push_back(lutTwo);mergeMats.push_back(lutThree);Mat LutTree;merge(mergeMats, LutTree);Mat img = imread("2.jpg");Mat gray, out0, out1, out2;cvtColor(img, gray, COLOR_BGR2GRAY);LUT(gray, lutOne, out0);LUT(img, lutOne, out1);LUT(img, LutTree, out2);imshow("out0", out0);imshow("out1", out1);imshow("out2", out2);waitKey(0);

图像尺寸改变

图像插值原理

在日常对图像进行操作的过程中会涉及到图像的放大与缩小,这一系列的操作都是通过插值法来实现的;opencv中resize()函数的实现原理0就是通过插值算法,如果不对应用某种算法进行设置,则默认采用双线性插值算法。
常用插值算法
最近邻法(Nearest Interpolation):计算速度最快,但是效果最差。
双线性插值(Bilinear Interpolation):双线性插值是用原图像中4(22)个点计算新图像中1个点,效果略逊于双三次插值,速度比双三次插值快,属于一种平衡美,在很多框架中属于默认算法。
双三次插值(Bicubic interpolation):双三次插值是用原图像中16(44)个点计算新图像中1个点,效果比较好,但是计算代价过大。
jj’

在这里插入图片描述

图像缩放
resize(InputArray src,OutputArray dst,Size dsize,double fx=0,double fy=0,int interpolation = INTER_LINEAR)
dsize:输出图像的尺寸 
fx:水平轴的比例因子:如果将水平轴变为原来的两倍,则赋值为2
fy:垂直轴的比例因子
interpolation:插值方法的标志
图像翻转
filp(InputArray src,OutputArray dst,int flipCode)
flipCode:翻转方式标志,数值大于0表示绕y轴进行翻转;数值等于0,表示绕x轴进行翻转,数值小于0表示绕两个轴旋转
图像拼接
//横向拼接要求高度一致
hconcat(InputArray src1,InputArray src2,OutputArray dst)
//垂直拼接要求宽度一致
vconcat(InputArray src1,InputArray src2,OutputArray dst) 
	Mat img = imread("2.jpg");Mat out,out1,out2,out3;// 缩小resize(img, out, Size(500,500),0, 0, INTER_AREA);// 最近邻插值resize(img, out1, Size(200, 200), 0, 0, INTER_NEAREST);//双线性插值resize(img, out2, Size(200, 200), 0, 0, INTER_LINEAR);//双三次插值resize(img, out3, Size(200, 200), 0, 0, INTER_CUBIC);Mat img_x, img_y, img_xy;flip(img, img_x, 0); //沿x轴对称翻转flip(img, img_y, 1); //沿y轴对称翻转flip(img, img_xy, -1);//沿x轴对称,再y轴对称

相关文章:

Opencv-图像插值与LUT查找表

图像像素的比较 白色是255&#xff0c;黑色是0 min(InputArray src1,InputArray src2,OutputArray dst) max(InputArray src1,InputArray src2,OutpurArray dstsrc1:第一个图像矩阵&#xff0c;通道数任意src2&#xff1a;第二个图像矩阵&#xff0c;尺寸和通道数以及数据类型…...

我为什么写博客?写博客给我带来了什么?

1、写博客的契机 &#xff08;1&#xff09;刚开始接触CSDN&#xff0c;是大三的时候开始学习嵌入式开发&#xff0c;经常需要到网上百度查资料&#xff0c;由此经常游览CSDN上的博客&#xff1b; &#xff08;2&#xff09;在嵌入式的过程中&#xff0c;需要总结学习过的知识。…...

jdk11的HttpClient

我们都知道在jdk11之前都在用okhttp或者org.apache.httpcomponents 其实早在jdk9的时候这个方案就在孵化中 上面的截图来自openjdk的官网&#xff0c;注&#xff1a;openjdk是个开源项目&#xff0c;不存在侵权现象 这是openjdk的官网&#xff1a;JEP 110: HTTP/2 Client (In…...

Redis的优势

高性能 Redis是一种基于内存的数据存储系统&#xff0c;读写性能非常高&#xff0c;因此适用于对性能要求较高的应用场景。 数据结构丰富 Redis支持多种数据结构&#xff0c;如字符串、列表、集合、散列、有序集合等&#xff0c;可以满足不同的业务需求。还有一些特殊数据结…...

C++ string 类的其他操作

4.3.2 string 类的其他操作 在C新增string类之前,程序员也需要完成诸如给字符串赋值等工作。对于C语言式的字符串,程 序员使用C语言库中的函数来完成这些任务。头文件cstring(以前为string.h)提供了这些函数。例如,可 以使用函数 strcpy()将字符串复制到字符数组中,使用函数…...

structs2 重构成SpringBoot架构

# 目录 structs2 重构成SpringBoot架构 1.1 structs2架构&#xff1a; 1.2 springboot 架构 1.3 演化要点&#xff1a; 1.基于前端的展示层不需要修改 2.HttpServlet 将会有SpringBoot annotation 来处理 3.构建前置的Structs url 转发器&#xff0c;适配 4.ActionSupport将由…...

【MATLAB源码-第56期】基于WOA白鲸优化算法和PSO粒子群优化算法的三维路径规划对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1.粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;简称PSO&#xff09;是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述&#xff1a; 基本思想&#xff1a; 鸟群在寻找食物时&#xff0c;每只鸟都…...

【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox

文章目录 1.WinForm文件结构2. 窗体的常用属性、方法与事件2.1 常用属性&#xff08;可直接在属性中设置&#xff09;2.2 常用方法2.3 常用事件 3.Label、TextBox及Button控件4.RadioButton和CheckBox5.ListBox&#xff08;列表框&#xff09; 1.WinForm文件结构 .sln文件 &am…...

【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar

SwiftUI模块系列 - 已更新60篇 SwiftUI项目 - 已更新5个项目 往期Demo源码下载 技术:SwiftUI、SwiftUI4.0、Instagram、Firebase 运行环境: SwiftUI4.0 Xcode14 MacOS12.6 iPhone Simulator iPhone 14 Pro Max SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建Tab…...

PureFlash云原生存储部署方法

PureFlash云原生存储 PureFlash是一个开源存储系统&#xff0c;它能为云计算和传统应用提供块存储服务。PureFlash最显著的优势是其高性能&#xff0c;每节点能提供超过100万IOPS随机写IO。 PureFlash可以以云原生的方式部署&#xff0c;并为云原生应用提供持久存储。 PureFl…...

SqueezeNet 一维,二维网络复现 pytorch 小白易懂版

SqueezeNet 时隔一年我又开始复现神经网络的经典模型&#xff0c;这次主要复的是轻量级网络全家桶&#xff0c;轻量级神经网络旨在使用更小的参数量&#xff0c;无限的接近大模型的准确率&#xff0c;降低处理时间和运算量&#xff0c;这次要复现的是轻量级网络的非常经典的一…...

Java 数据结构

枚举 Java枚举是一种特殊的类&#xff0c;它用于定义有限个特定的值&#xff0c;例如一周的星期或者性别。枚举在Java中被视为数据类型&#xff0c;你可以使用它们来创建枚举类型的变量&#xff0c;然后使用那些枚举值等。 在Java中&#xff0c;声明枚举类型需要使用enum关键字…...

python sqlalchemy(ORM)- 02 表关系

文章目录 表关系ORM表示 1v1ORM表示 1vm 表关系 1:1&#xff0c;表A 中的一条记录&#xff0c;仅对应表B中的一条记录&#xff1b;表B的一条记录&#xff0c;仅对应表A的一条记录。1:m&#xff0c;表A中的一条记录&#xff0c;对应表B中的多条记录&#xff0c;表B中的一条记录…...

Http长连接同一个socket多个请求和响应如何保证一一对应?

HTTP/2引入二进制数据帧和流的概念&#xff0c;其中帧对数据进行顺序标识&#xff0c;如下图所示&#xff0c;这样浏览器收到数据之后&#xff0c;就可以按照序列对数据进行合并&#xff0c;而不会出现合并后数据错乱的情况。同样是因为有了序列&#xff0c;服务器就可以并行的…...

Standford Compiler Course Assignment 2

第二部分的作业是语法分析&#xff0c;通过编写cool.y(这个assignment的任务)&#xff0c;利用bison将其自动生成语法分析LALR(1)的代码。 语法分析&#xff0c;就是将词法分析阶段已经识别好的token&#xff0c;按照语法的规则&#xff0c;构建抽象语法树的过程。 比如以下的…...

基于Java的校园论坛管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...

谈谈你对Spring的理解

谈谈你对Spring的理解 一&#xff0c;什么是Spring 1.介绍 Spring是一个用于开发Java应用程序的工具集合&#xff0c;它提供了许多方便的组件和工具&#xff0c;可以帮助开发者更轻松地构建企业级应用程序。 Spring Framework是Spring的核心部分&#xff0c;它可以帮助开发者…...

系统架构师考试易混淆知识点总结

易混淆点1&#xff1a;系统工程生命周期与信息系统的生命周期 1、系统工程生命周期阶段 探索性研究→概念阶段→开发阶段→生产阶段→使用阶段→保障阶段→退役阶段 2、信息系统的生命周期 产生阶段→开发阶段(单个系统开发:总体规划、系统分析、系统设计、系统实施、系统验收…...

反射的作用( 越过泛型检查 和 可以使用反射保存所有对象的具体信息 )

1、绕过 编译阶段 为集合添加数据 反射是作用在运行时的技术&#xff0c;此时集合的泛型将不能产生约束了&#xff0c;此时是可以 为集合存入其他任意类型的元素的 。泛型只是在编译阶段可以约束集合只能操作某种数据类型&#xff0c;在 编译成Class文件进入 运行阶段 的时候&a…...

前端开发实践:vue中用qrcode库将超链接生成二维码图片

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...