【OpenCV • c++】颜色数据结构与颜色空间转换

news2024/9/24 1:17:33

  • 🚀 个人简介:CSDN「博客新星」TOP 10 , C/C++ 领域新星创作者
  • 💟 作    者:锡兰_CC ❣️
  • 📝 专    栏:【OpenCV • c++】计算机视觉
  • 🌈 若有帮助,还请关注➕点赞➕收藏,不行的话我再努努力💪💪💪

文章目录

    • 一、颜色模型
      • 1、 RGB颜色模型
      • 2、YUV颜色模型
      • 3、HSV颜色模型
      • 4、Lab颜色模型
      • 5、GRAY颜色模型
    • 二、颜色数据结构
    • 三、颜色空间转换
      • 参考代码

一、颜色模型

1、 RGB颜色模型

  该模型的命名方式是采用三种颜色的英文首字母组成,分别是红色(Red)、绿色(Green)和蓝色(Blue)。虽然该颜色模型的命名方式是红色在前,但是在OpenCV中却是相反的顺序,第一个通道时蓝色(B)分量,第二个通道时绿色(G)分量,第三个通道时红色(R)分量。
  三个通道对于颜色描述的范围是相同的,因此RGB颜色模型的空间构成是一个立方体。在RGB颜色模型中,所有的颜色都是由这三种颜色通过不同比例的混合得到,如果三种颜色分量都为0,则表示为黑色,如果三种颜色的分量相同且都为最大值,则表示为白色。每个通道都表示某一种颜色由0到1的过程,不同位数的图像表示将这个颜色变化过程细分成不同的层级,例如8U3C格式的图像每个通道将这个过程量化成 256 个等级,分别由 0 到 255 表示。在这个模型的基础上增加第四个通道即为 RGBA 模型,第四个通道表示颜色的透明度,当没有透明度需求的时候,RGBA 模型就会退化成 RGB 模型。

2、YUV颜色模型

  YUV模型是电视信号系统所采用的颜色编码方式。这三个变量分别表示是像素的亮度(Y)以及红色分量与亮度的信号差值(U)和蓝色与亮度的差值(V)。这种颜色模型主要用于视频和图像的传输,该模型的产生与电视机的发展历程密切相关。由于彩色电视机在黑白电视机发明之后才产生,因此用于彩色电视机的视频信号需要能够兼容黑白电视机。彩色电视机需要三个通道的数据才能显示彩色,而黑白电视机只需要一个通道的数据即可,因此为了使视频信号能够兼容彩色电视与黑白电视,将RGB编码方式转变成YUV的编码方式,其Y通道是图像的亮度,黑白电视只需要使用该通道就可以显示黑白视频图像,而彩色相机通过将YUV编码转成RGB编码方式,便可以在彩色电视种显示彩色图像,较好的解决了同一个视频信号兼容不同类型电视的问题。RGB模型与YUV模型之间的转换关系如式所示,其中RGB取值范围均为 0-255。

3、HSV颜色模型

  HSV是色度(Hue)、饱和度(Saturation)和亮度(Value)的简写,通过名字也可以看出来该模型通过这三个特性对颜色进行描述。色度是色彩的基本属性,就是平时常说的颜色,例如红色,蓝色等;饱和度是指颜色的纯度,饱和度越高色彩越纯越艳,饱和度越低色彩则逐渐地变灰变暗,饱和度的取值范围是由 0 到 100% 。亮度是颜色的明亮程度,其取值范围由 0 到计算机中允许的最大值。由于色度、饱和度和亮度的取值范围不同,因此其颜色空间模型用锥形表示。相比于RGB模型三个颜色分量与最终颜色联系不直观的缺点,HSV模型更加符合人类感知颜色的方式:颜色、深浅以及亮暗。

4、Lab颜色模型

  Lab颜色模型弥补了RGB模型的不足,是一种设备无关的颜色模型,是一种基于生理特征的颜色模型。在模型中 L 表示亮度(Luminosity),a 和 b 是两个颜色通道,两者的取值区间都是由 -128 到 +127 ,其中 a 通道数值由小到大对应的颜色是从绿色变成红色,b 通道数值由小到大对应的颜色是由蓝色变成黄色。其构成的颜色空间是一个球形。

5、GRAY颜色模型

  GRAY模型并不是一个彩色模型,他是一个灰度图像的模型,其命名使用的是英文单词 gray 的全字母大写。灰度图像只有单通道,灰度值根据图像位数不同由0到最大依次表示由黑到白,例如8UC1格式中,由黑到白被量化成了 256 个等级,通过 0-255 表示,其中 255 表示白色。彩色图像具有颜色丰富、信息含量大的特性,但是灰度图在图像处理中依然具有一定的优势。例如,灰度图像具有相同尺寸相同压缩格式所占容量小,易于采集,便于传输等优点。

二、颜色数据结构

  Scalar代表一个 4 元素的向量,在OpenCV中被广泛用于传输像素值,比如 RGB 颜色。RGB颜色值有三个参数,如果不需要第四个参数,可以不写出来,只写三个参数。下面演示定义一个颜色表达式。

	Scalar( a, b ,c);

  在这个颜色表达式中,蓝色分量为a,绿色分量为b,红色分量为a
  注意:在OpenCV中默认的图片通道存储顺序是BGR,也就是蓝绿红,不是RGB

三、颜色空间转换

  cvtColor()OpenCV中颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像。

参考代码

		void cv::cvtColor(InputArray src, OutputArray dst, int code, int dstCn = 0)

  其中,第一个参数表示输入图像,第二个参数表示输出图像,第三个参数表示颜色空间转换的标识符,第四个参数表示目标图像的通道数,若该参数值为 0,表示目标图像取源图像的通道数。
  下面是常见的颜色空间转换的标识符。

在这里插入图片描述在这里插入图片描述

  下面是官方文档的标识符:

cv::ColorConversionCodes { 
  cv::COLOR_BGR2BGRA = 0, 
  cv::COLOR_RGB2RGBA = COLOR_BGR2BGRA, 
  cv::COLOR_BGRA2BGR = 1, 
  cv::COLOR_RGBA2RGB = COLOR_BGRA2BGR, 
  cv::COLOR_BGR2RGBA = 2, 
  cv::COLOR_RGB2BGRA = COLOR_BGR2RGBA, 
  cv::COLOR_RGBA2BGR = 3, 
  cv::COLOR_BGRA2RGB = COLOR_RGBA2BGR, 
  cv::COLOR_BGR2RGB = 4, 
  cv::COLOR_RGB2BGR = COLOR_BGR2RGB, 
  cv::COLOR_BGRA2RGBA = 5, 
  cv::COLOR_RGBA2BGRA = COLOR_BGRA2RGBA, 
  cv::COLOR_BGR2GRAY = 6, 
  cv::COLOR_RGB2GRAY = 7, 
  cv::COLOR_GRAY2BGR = 8, 
  cv::COLOR_GRAY2RGB = COLOR_GRAY2BGR, 
  cv::COLOR_GRAY2BGRA = 9, 
  cv::COLOR_GRAY2RGBA = COLOR_GRAY2BGRA, 
  cv::COLOR_BGRA2GRAY = 10, 
  cv::COLOR_RGBA2GRAY = 11, 
  cv::COLOR_BGR2BGR565 = 12, 
  cv::COLOR_RGB2BGR565 = 13, 
  cv::COLOR_BGR5652BGR = 14, 
  cv::COLOR_BGR5652RGB = 15, 
  cv::COLOR_BGRA2BGR565 = 16, 
  cv::COLOR_RGBA2BGR565 = 17, 
  cv::COLOR_BGR5652BGRA = 18, 
  cv::COLOR_BGR5652RGBA = 19, 
  cv::COLOR_GRAY2BGR565 = 20, 
  cv::COLOR_BGR5652GRAY = 21, 
  cv::COLOR_BGR2BGR555 = 22, 
  cv::COLOR_RGB2BGR555 = 23, 
  cv::COLOR_BGR5552BGR = 24, 
  cv::COLOR_BGR5552RGB = 25, 
  cv::COLOR_BGRA2BGR555 = 26, 
  cv::COLOR_RGBA2BGR555 = 27, 
  cv::COLOR_BGR5552BGRA = 28, 
  cv::COLOR_BGR5552RGBA = 29, 
  cv::COLOR_GRAY2BGR555 = 30, 
  cv::COLOR_BGR5552GRAY = 31, 
  cv::COLOR_BGR2XYZ = 32, 
  cv::COLOR_RGB2XYZ = 33, 
  cv::COLOR_XYZ2BGR = 34, 
  cv::COLOR_XYZ2RGB = 35, 
  cv::COLOR_BGR2YCrCb = 36, 
  cv::COLOR_RGB2YCrCb = 37, 
  cv::COLOR_YCrCb2BGR = 38, 
  cv::COLOR_YCrCb2RGB = 39, 
  cv::COLOR_BGR2HSV = 40, 
  cv::COLOR_RGB2HSV = 41, 
  cv::COLOR_BGR2Lab = 44, 
  cv::COLOR_RGB2Lab = 45, 
  cv::COLOR_BGR2Luv = 50, 
  cv::COLOR_RGB2Luv = 51, 
  cv::COLOR_BGR2HLS = 52, 
  cv::COLOR_RGB2HLS = 53, 
  cv::COLOR_HSV2BGR = 54, 
  cv::COLOR_HSV2RGB = 55, 
  cv::COLOR_Lab2BGR = 56, 
  cv::COLOR_Lab2RGB = 57, 
  cv::COLOR_Luv2BGR = 58, 
  cv::COLOR_Luv2RGB = 59, 
  cv::COLOR_HLS2BGR = 60, 
  cv::COLOR_HLS2RGB = 61, 
  cv::COLOR_BGR2HSV_FULL = 66, 
  cv::COLOR_RGB2HSV_FULL = 67, 
  cv::COLOR_BGR2HLS_FULL = 68, 
  cv::COLOR_RGB2HLS_FULL = 69, 
  cv::COLOR_HSV2BGR_FULL = 70, 
  cv::COLOR_HSV2RGB_FULL = 71, 
  cv::COLOR_HLS2BGR_FULL = 72, 
  cv::COLOR_HLS2RGB_FULL = 73, 
  cv::COLOR_LBGR2Lab = 74, 
  cv::COLOR_LRGB2Lab = 75, 
  cv::COLOR_LBGR2Luv = 76, 
  cv::COLOR_LRGB2Luv = 77, 
  cv::COLOR_Lab2LBGR = 78, 
  cv::COLOR_Lab2LRGB = 79, 
  cv::COLOR_Luv2LBGR = 80, 
  cv::COLOR_Luv2LRGB = 81, 
  cv::COLOR_BGR2YUV = 82, 
  cv::COLOR_RGB2YUV = 83, 
  cv::COLOR_YUV2BGR = 84, 
  cv::COLOR_YUV2RGB = 85, 
  cv::COLOR_YUV2RGB_NV12 = 90, 
  cv::COLOR_YUV2BGR_NV12 = 91, 
  cv::COLOR_YUV2RGB_NV21 = 92, 
  cv::COLOR_YUV2BGR_NV21 = 93, 
  cv::COLOR_YUV420sp2RGB = COLOR_YUV2RGB_NV21, 
  cv::COLOR_YUV420sp2BGR = COLOR_YUV2BGR_NV21, 
  cv::COLOR_YUV2RGBA_NV12 = 94, 
  cv::COLOR_YUV2BGRA_NV12 = 95, 
  cv::COLOR_YUV2RGBA_NV21 = 96, 
  cv::COLOR_YUV2BGRA_NV21 = 97, 
  cv::COLOR_YUV420sp2RGBA = COLOR_YUV2RGBA_NV21, 
  cv::COLOR_YUV420sp2BGRA = COLOR_YUV2BGRA_NV21, 
  cv::COLOR_YUV2RGB_YV12 = 98, 
  cv::COLOR_YUV2BGR_YV12 = 99, 
  cv::COLOR_YUV2RGB_IYUV = 100, 
  cv::COLOR_YUV2BGR_IYUV = 101, 
  cv::COLOR_YUV2RGB_I420 = COLOR_YUV2RGB_IYUV, 
  cv::COLOR_YUV2BGR_I420 = COLOR_YUV2BGR_IYUV, 
  cv::COLOR_YUV420p2RGB = COLOR_YUV2RGB_YV12, 
  cv::COLOR_YUV420p2BGR = COLOR_YUV2BGR_YV12, 
  cv::COLOR_YUV2RGBA_YV12 = 102, 
  cv::COLOR_YUV2BGRA_YV12 = 103, 
  cv::COLOR_YUV2RGBA_IYUV = 104, 
  cv::COLOR_YUV2BGRA_IYUV = 105, 
  cv::COLOR_YUV2RGBA_I420 = COLOR_YUV2RGBA_IYUV, 
  cv::COLOR_YUV2BGRA_I420 = COLOR_YUV2BGRA_IYUV, 
  cv::COLOR_YUV420p2RGBA = COLOR_YUV2RGBA_YV12, 
  cv::COLOR_YUV420p2BGRA = COLOR_YUV2BGRA_YV12, 
  cv::COLOR_YUV2GRAY_420 = 106, 
  cv::COLOR_YUV2GRAY_NV21 = COLOR_YUV2GRAY_420, 
  cv::COLOR_YUV2GRAY_NV12 = COLOR_YUV2GRAY_420, 
  cv::COLOR_YUV2GRAY_YV12 = COLOR_YUV2GRAY_420, 
  cv::COLOR_YUV2GRAY_IYUV = COLOR_YUV2GRAY_420, 
  cv::COLOR_YUV2GRAY_I420 = COLOR_YUV2GRAY_420, 
  cv::COLOR_YUV420sp2GRAY = COLOR_YUV2GRAY_420, 
  cv::COLOR_YUV420p2GRAY = COLOR_YUV2GRAY_420, 
  cv::COLOR_YUV2RGB_UYVY = 107, 
  cv::COLOR_YUV2BGR_UYVY = 108, 
  cv::COLOR_YUV2RGB_Y422 = COLOR_YUV2RGB_UYVY, 
  cv::COLOR_YUV2BGR_Y422 = COLOR_YUV2BGR_UYVY, 
  cv::COLOR_YUV2RGB_UYNV = COLOR_YUV2RGB_UYVY, 
  cv::COLOR_YUV2BGR_UYNV = COLOR_YUV2BGR_UYVY, 
  cv::COLOR_YUV2RGBA_UYVY = 111, 
  cv::COLOR_YUV2BGRA_UYVY = 112, 
  cv::COLOR_YUV2RGBA_Y422 = COLOR_YUV2RGBA_UYVY, 
  cv::COLOR_YUV2BGRA_Y422 = COLOR_YUV2BGRA_UYVY, 
  cv::COLOR_YUV2RGBA_UYNV = COLOR_YUV2RGBA_UYVY, 
  cv::COLOR_YUV2BGRA_UYNV = COLOR_YUV2BGRA_UYVY, 
  cv::COLOR_YUV2RGB_YUY2 = 115, 
  cv::COLOR_YUV2BGR_YUY2 = 116, 
  cv::COLOR_YUV2RGB_YVYU = 117, 
  cv::COLOR_YUV2BGR_YVYU = 118, 
  cv::COLOR_YUV2RGB_YUYV = COLOR_YUV2RGB_YUY2, 
  cv::COLOR_YUV2BGR_YUYV = COLOR_YUV2BGR_YUY2, 
  cv::COLOR_YUV2RGB_YUNV = COLOR_YUV2RGB_YUY2, 
  cv::COLOR_YUV2BGR_YUNV = COLOR_YUV2BGR_YUY2, 
  cv::COLOR_YUV2RGBA_YUY2 = 119, 
  cv::COLOR_YUV2BGRA_YUY2 = 120, 
  cv::COLOR_YUV2RGBA_YVYU = 121, 
  cv::COLOR_YUV2BGRA_YVYU = 122, 
  cv::COLOR_YUV2RGBA_YUYV = COLOR_YUV2RGBA_YUY2, 
  cv::COLOR_YUV2BGRA_YUYV = COLOR_YUV2BGRA_YUY2, 
  cv::COLOR_YUV2RGBA_YUNV = COLOR_YUV2RGBA_YUY2, 
  cv::COLOR_YUV2BGRA_YUNV = COLOR_YUV2BGRA_YUY2, 
  cv::COLOR_YUV2GRAY_UYVY = 123, 
  cv::COLOR_YUV2GRAY_YUY2 = 124, 
  cv::COLOR_YUV2GRAY_Y422 = COLOR_YUV2GRAY_UYVY, 
  cv::COLOR_YUV2GRAY_UYNV = COLOR_YUV2GRAY_UYVY, 
  cv::COLOR_YUV2GRAY_YVYU = COLOR_YUV2GRAY_YUY2, 
  cv::COLOR_YUV2GRAY_YUYV = COLOR_YUV2GRAY_YUY2, 
  cv::COLOR_YUV2GRAY_YUNV = COLOR_YUV2GRAY_YUY2, 
  cv::COLOR_RGBA2mRGBA = 125, 
  cv::COLOR_mRGBA2RGBA = 126, 
  cv::COLOR_RGB2YUV_I420 = 127, 
  cv::COLOR_BGR2YUV_I420 = 128, 
  cv::COLOR_RGB2YUV_IYUV = COLOR_RGB2YUV_I420, 
  cv::COLOR_BGR2YUV_IYUV = COLOR_BGR2YUV_I420, 
  cv::COLOR_RGBA2YUV_I420 = 129, 
  cv::COLOR_BGRA2YUV_I420 = 130, 
  cv::COLOR_RGBA2YUV_IYUV = COLOR_RGBA2YUV_I420, 
  cv::COLOR_BGRA2YUV_IYUV = COLOR_BGRA2YUV_I420, 
  cv::COLOR_RGB2YUV_YV12 = 131, 
  cv::COLOR_BGR2YUV_YV12 = 132, 
  cv::COLOR_RGBA2YUV_YV12 = 133, 
  cv::COLOR_BGRA2YUV_YV12 = 134, 
  cv::COLOR_BayerBG2BGR = 46, 
  cv::COLOR_BayerGB2BGR = 47, 
  cv::COLOR_BayerRG2BGR = 48, 
  cv::COLOR_BayerGR2BGR = 49, 
  cv::COLOR_BayerBG2RGB = COLOR_BayerRG2BGR, 
  cv::COLOR_BayerGB2RGB = COLOR_BayerGR2BGR, 
  cv::COLOR_BayerRG2RGB = COLOR_BayerBG2BGR, 
  cv::COLOR_BayerGR2RGB = COLOR_BayerGB2BGR, 
  cv::COLOR_BayerBG2GRAY = 86, 
  cv::COLOR_BayerGB2GRAY = 87, 
  cv::COLOR_BayerRG2GRAY = 88, 
  cv::COLOR_BayerGR2GRAY = 89, 
  cv::COLOR_BayerBG2BGR_VNG = 62, 
  cv::COLOR_BayerGB2BGR_VNG = 63, 
  cv::COLOR_BayerRG2BGR_VNG = 64, 
  cv::COLOR_BayerGR2BGR_VNG = 65, 
  cv::COLOR_BayerBG2RGB_VNG = COLOR_BayerRG2BGR_VNG, 
  cv::COLOR_BayerGB2RGB_VNG = COLOR_BayerGR2BGR_VNG, 
  cv::COLOR_BayerRG2RGB_VNG = COLOR_BayerBG2BGR_VNG, 
  cv::COLOR_BayerGR2RGB_VNG = COLOR_BayerGB2BGR_VNG, 
  cv::COLOR_BayerBG2BGR_EA = 135, 
  cv::COLOR_BayerGB2BGR_EA = 136, 
  cv::COLOR_BayerRG2BGR_EA = 137, 
  cv::COLOR_BayerGR2BGR_EA = 138, 
  cv::COLOR_BayerBG2RGB_EA = COLOR_BayerRG2BGR_EA, 
  cv::COLOR_BayerGB2RGB_EA = COLOR_BayerGR2BGR_EA, 
  cv::COLOR_BayerRG2RGB_EA = COLOR_BayerBG2BGR_EA, 
  cv::COLOR_BayerGR2RGB_EA = COLOR_BayerGB2BGR_EA, 
  cv::COLOR_BayerBG2BGRA = 139, 
  cv::COLOR_BayerGB2BGRA = 140, 
  cv::COLOR_BayerRG2BGRA = 141, 
  cv::COLOR_BayerGR2BGRA = 142, 
  cv::COLOR_BayerBG2RGBA = COLOR_BayerRG2BGRA, 
  cv::COLOR_BayerGB2RGBA = COLOR_BayerGR2BGRA, 
  cv::COLOR_BayerRG2RGBA = COLOR_BayerBG2BGRA, 
  cv::COLOR_BayerGR2RGBA = COLOR_BayerGB2BGRA, 
  cv::COLOR_COLORCVT_MAX = 143 
}

  案例演示:

#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>

using namespace std;
using namespace cv;

int main() {
	Mat srcImage, dstImage;
	srcImage = cv::imread("...cc.png");
	if (!srcImage.data)
		return 1;
	cvtColor(srcImage, dstImage, COLOR_BGR2Lab);
	imshow("原图",srcImage);
	imshow("效果图", dstImage);
	waitKey(0);
	return 0;
}

在这里插入图片描述
其他

更多专栏订阅:

  • 👍 【开卷数据结构】
  • 💛 【备战蓝桥,冲击省一】
  • 💕   从零开始的 c++ 之旅
  • 💖 【OpenCV • c++】计算机视觉

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

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

相关文章

chatgpt赋能python:Python:一个值得花钱学习的编程语言

Python&#xff1a;一个值得花钱学习的编程语言 近年来&#xff0c;Python成为了一款备受欢迎的编程语言&#xff0c;尤其在数据科学、人工智能等领域表现出色。许多人开始进入Python编程领域&#xff0c;而且Python培训课程也爆发式增长。但是&#xff0c;一些人对于Python的…

react中基于腾讯云cos上传图片组件

react中基于腾讯云cos上传图片组件 效果示例图上传图片组件imageUploadcomponents/imageUpload/index.jsxcomponents/imageUpload/upload.scss 使用组件 效果示例图 上传图片组件imageUpload npm install cos-js-sdk-v5 -S components/imageUpload/index.jsx import ".…

Mac 打开/关闭 iCloud 后导致桌面文件夹、文档删除,恢复步骤!

不小心打开/关闭了 iCloud 后&#xff0c;导致桌面内容全部丢失&#xff0c;再次打开同步&#xff0c;发现还是确实很多内容&#xff0c;如何找回最初的文件副本。 当 iCloud 关闭时&#xff0c;会将任何未上传到 iCloud 云盘的文稿内容转移打包放到当前 Mac 电脑的个人文件夹…

ChatGPT批量生成文章软件:助力创作高效快捷文章

随着人工智能技术的不断发展&#xff0c;ChatGPT批量生成文章软件已经成为了一种强大的创作工具。它能够通过自然语言处理和机器学习算法&#xff0c;快速生成高质量的文章&#xff0c;为创作者提供了高效快捷的创作体验。本文将从随机8-20个方面对ChatGPT批量生成文章软件进行…

【从零开始学习JAVA | 第二十一篇】常见API介绍 System

目录 前言&#xff1a; System&#xff1a; System类中静态方法&#xff1a; 总结&#xff1a; 前言&#xff1a; system 是一个很底层的 API&#xff0c;是一个工具类&#xff0c;提供了一些与系统相关的方法。他在我们写项目的时候提供了一些非常实用的方法&#xff0c;本…

基于Filebeat+Kafka+ELK实现Nginx日志收集并采用Elastalert2实现钉钉告警

目录 基于FilebeatKafkaELK实现Nginx日志收集1.规划好项目架构图2.部署前端web集群3.部署ES集群集群介绍环境准备集群搭建分片和副本 4.部署kafka集群环境准备静态IP配置重启网络服务域名解析设置安装时间同步服务关闭防火墙和selinux kafka集群依赖于zookeeperkafaka和zookeep…

8 系统定时器(Systick)

目录 系统定时器&#xff08;Systick&#xff09; SysTick定时器特性介绍 SysTick定时器的功能 SysTick定时器寄存器介绍 Systick定时器的使用 系统定时器&#xff08;Systick&#xff09; SysTick定时器特性介绍 计数宽度&#xff1a; 24bit来存储数据&#xff0c;2^24…

HOT21-搜索二维矩阵II

leetcode原题链接&#xff1a; 搜索二维矩阵II 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[…

【CSS3系列】第八章 · 伸缩盒模型

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

基于matlab使用深度学习的语义分割算法实现(附源码)

一、前言 此示例演示如何使用语义分割网络对图像进行分割。 语义分割网络对图像中的每个像素进行分类&#xff0c;从而生成按类分割的图像。语义分割的应用包括自动驾驶的道路分割和医疗诊断的癌细胞分割。 此示例首先向您展示如何使用预训练的 Deeplab v3 [1] 网络分割图像&am…

git权限异常:fatal: Authentication failed for

本地电脑用户密码修改了&#xff0c;git 提交&#xff0c;拉取出现异常, 就会报这个错误fatal: Authentication failed for http://xxx/xxx/xxx 解决方法&#xff1a; git config --system --unset credential.helper 免输入用户密码方法&#xff1a; git config --global…

【超简单】Ubuntu 安装 bcompare 对比工具

下载 bcompare 安装包&#xff1a;《bcompare-4.4.6.27483_amd64.deb》 https://www.scootersoftware.com/download.php?zzdl4 安装 becompare 安装&#xff1a; sudo dpkg -i bcompare-4.4.6.27483_amd64.deb破解 cd /usr/lib/beyondcompare/ sudo sed -i "s/kee…

革新写作方式:ChatGPT最新版带来高质量聚合文章的批量生成

随着人工智能技术的不断发展&#xff0c;自然语言处理模型也在不断进步。ChatGPT最新版作为一种强大的语言模型&#xff0c;可以生成高质量的聚合文章&#xff0c;为写作方式带来了革新。本文将详细阐述ChatGPT最新版带来的革新之处&#xff0c;包括其应用领域、生成文章的流程…

剑指 Offer 12: 矩阵中的路径

这道题看着简直是完全没思路&#xff0c;看了下发现是使用回溯的方法。 下面这里要注意&#xff0c;newi是旧的i加上新的偏移值&#xff01;newj同理&#xff0c;并不是加自己&#xff0c;别昏头&#xff01; s是String类型的变量&#xff0c;要写成size() 下面是正确的代码&a…

计算机组成原理笔记——指令系统、中央处理器、总线、I/O系统(王道考研)(持续更新)

文章目录 前言指令系统指令系统概述指令格式扩展操作码 指令寻址方式指令寻址数据寻址基本的寻址思路偏移寻址隐含寻址 程序的机器级代码表示汇编基础AT&T格式和Intel格式C语言控制结构的汇编表示函数调用栈帧切换栈帧构造 CISC与RISC 中央处理器CPU的功能和基本结构运算器…

企业级微服务架构实战项目--xx优选-详情页面的异步调用completablefuture

一 常见的调用方式 1.1 并发 并发&#xff1a;同一时刻多个线程在访问同一个资源&#xff0c;多个线程对一个点 ​ 例子&#xff1a;春运抢票、微信抢红包、电商秒杀... 1.2 同步串行 代表多任务按先后顺序执行&#xff0c;并且都是同一个线程来执行。 1.3 异步串行 代表…

【Java面试题】Java基础语法

文章目录 JDK、JRE和JVM的关系栈和堆分别存的什么数据异步和同步线程和进程区别java的数据类型有哪些equals和HashCode重写的问题?深拷贝和浅拷贝的区别和equals的区别常见的运行时异常有哪些&#xff1f; JDK、JRE和JVM的关系 JDK、JRE和JVM的关系&#xff1a; JDK(Java De…

数据库监控与调优【一】—— 数据库调优的维度

数据库调优的维度 左边是千金良方的&#xff0c;右边是个人优化的 业务需求 不合理的需求&#xff0c;可能会造成很多问题勇敢地对不合理的需求说不拨乱反正&#xff0c;把不合理的需求变成合理的需求 例子 财务SaaS系统&#xff0c;财务领域有种叫做代账的概念&#xff0c…

uniapp+vue3+vite+ts+uviewPlus搭建项目

创建项目架构 首先使用官方提供的脚手架创建一个项目&#xff0c;这里我创建的 vue3 vite ts 的项目&#xff1a; npx degit dcloudio/uni-preset-vue#vite-ts project-name&#xff08;如命令行创建失败&#xff0c;请直接访问 giteehttps://gitee.com/dcloud/uni-preset-vu…

2023-06-20 x-ui-服务器配置记录

基础软件: yum update -y yum install -y curl yum install -y socat 工作软件: bash <(curl -Ls https://raw.githubusercontent.com/sprov065/x-ui/master/install.sh) 设置: 参考: 使用云服务器搭建代理-腾讯云开发者社区-腾讯云