Opencv之读取图片

news2024/11/24 11:31:02

目录

    • 安装opencv
    • 读取彩色图片
    • 显示图片
    • 读取灰度图片
    • 结论

安装opencv

pip install opencv-python

在这里插入图片描述

读取彩色图片

使用OpenCV库读取彩色图片,其格式默认为BGR。
下面的代码展示了如何读取一张名为bg.jpg的彩色图片,并获取其相关信息。
在这里插入图片描述

import cv2

# 读取彩色图片
img = cv2.imread('bg.jpg', cv2.IMREAD_COLOR)

# 打印图片数据类型
print('图片数据类型:', type(img))

# 打印图片的形状 (高度, 宽度, 通道数)
print('彩色图的形状:', img.shape)

# 打印图像的像素点个数
print('彩色图的像素点个数:', img.size)

在这里插入图片描述

显示图片

为了显示图片,可以使用cv2.imshow函数。以下是一个自定义的函数img_show,用于显示图片并等待用户按键后关闭窗口。

def img_show(name, img):
    """
    显示图片
    :param name: 窗口名字
    :param img: 图片对象
    :return: None
    """
    cv2.imshow(name, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

读取灰度图片

灰度图片只包含一个通道,下面的代码展示了如何读取灰度图片,并获取其相关信息。
在这里插入图片描述

# 读取灰度图片
img_gray = cv2.imread('bg.jpg', cv2.IMREAD_GRAYSCALE)

# 打印灰度图的形状
print('灰度图的形状:', img_gray.shape)

# 打印灰度图的像素点个数
print('灰度图的像素点个数:', img_gray.size)

# 显示灰度图片
img_show('gray_image', img_gray)

在这里插入图片描述

结论

在这里插入图片描述
在这里插入图片描述
结合上篇文章我们可以看出 彩色图的像素点个数是灰度图的两倍

但是图片显示的大小没有啥区别,可以推出在宽度和高度向同时,彩色的图是三个子像素点组成一个视觉像素点,也就是三个通道

彩色图像由RGB三通道构成,每个像素点包含三个子像素(红、绿、蓝),而灰度图像只有一个通道。尽管如此,彩色图像和灰度图像在视觉上具有相同的宽度和高度。

👇 源码资料获取 · 技术与交流 👇

在这里插入图片描述

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

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

相关文章

Brave编译指南2024 Linux篇-构建与运行(七)

引言 在完成了构建环境的初始化后,我们终于可以开始编译Brave浏览器了。本文将详细介绍如何构建Brave浏览器,以及如何运行编译好的浏览器。 1.编译Brave浏览器 1.1 构建 使用下面的命令进行发布构建 npm run build 这个命令会触发一系列的编译过程…

【pyspark学习从入门到精通5】弹性分布式数据集_3

目录 Actions .take(...) 方法 .collect(...) 方法 .reduce(...) 方法 .count(...) 方法 .saveAsTextFile(...) 方法 .foreach(...) 方法 Actions 与转换不同,动作是在数据集上执行计划任务的;一旦您完成了数据的转换,就可以执行您的转…

数学科普读物《从毕达哥拉斯到怀尔斯》

毕达哥拉斯是古希腊数学家,怀尔斯是英国数学家,曾任美国普林斯顿大学教授。这本书是哈工大出版社刘培杰先生主编的。这是一本500多页的书,我不禁慨叹高级数学爱好者刘培杰的博学广识,因为书中纵论古今旁征博引,仅书后的…

JavaWeb 18.监听器

目录 一、监听器概述 监听器的分类 按监听的对象划分 按监听的事件划分 二、监听器的六个主要接口 1.application监听器 2.session域监听器 3.request域监听器 三、session域的两个特殊监听器 1.session绑定监听器 2.钝化活化监听器 什么是钝化活化 如何配置钝化与活化 ​编辑 …

高并发下的库存扣减技术

背景 针对库存操作,宗旨:绝不超卖(存在资损、造成客诉、用户体验差)、尽量避免少卖(相对资损)。 在明星直播、大促、秒杀等高并发场景下,数据库的性能会变得非常差,传统的分库分表…

【C++进阶专栏】:priority_queue(优先级队列)?仿函数?

文章目录 前言1、优先级队列的使用?2、仿函数?3、优先级队列用仿函数实现大/小堆变换? 前言 priority_queue:优先级队列,别看有一个队列的名字,但结构个队列完全不一样。队列是一种先进先出的结构特征&…

AttributeError: ‘str‘ Object Has No Attribute ‘x‘:字符串对象没有属性x的完美解决方法

AttributeError: str Object Has No Attribute x:字符串对象没有属性x的完美解决方法 🔍💡 AttributeError: str Object Has No Attribute x:字符串对象没有属性x的完美解决方法 🔍💡摘要 📖引言…

四、音频播放

一、相关逻辑 在登录代码中调用,资源加载代码,然后再资源加载代码中调用。 1、登陆方法中: 单例类音频调用自己的方法,然后传入配置代码中的常量 2、音频播放代码中: 首先设置为一个单例类,然后初始化一…

精益与数字化的融合:制造业的创新之路

回望过去,精益管理作为制造业的瑰宝,以其“消除浪费、持续改进、顾客至上”的核心理念,引领了无数企业走向成功。从丰田生产方式到全球范围内的广泛实践,精益管理不仅提升了生产效率,更重塑了企业的文化和价值观。它教…

【Python大语言模型系列】一文教你使用dify云版本开发一个简单的Agent(完整教程)

这是我的第365篇原创文章。 一、引言 智能助手(Agent),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务。 本文我们将搭建一个旅行…

vt虚拟化怎么开启_各品牌主板及品牌机开启VT虚拟化教程

VT指的是CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。下面,小编给大家介绍电脑开启vt的操作步骤。 VT虚…

[LeetCode] 155. 最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…

TiDB 监控组件之 Blackbox_exporter 运行原理

作者: TiDBerHailang 原文来源: https://tidb.net/blog/b269e96f 1. 介绍 本文介绍了 TiDB 集群监控组件Blackbox Exporter监控运行机制和配置方式。Blackbox Exporter是Prometheus官方提供的 Exporter,它能够通过多种协议对网络服务进行…

使用HTML、CSS和JavaScript创建滚动弹幕效果

使用HTML、CSS和JavaScript创建滚动弹幕效果 在现代网页设计中,滚动文本是一种常见的动态效果,可以吸引用户的注意力并增强交互体验。在这篇博客文章中,我们将详细介绍如何使用HTML、CSS和JavaScript实现滚动文本效果。 效果 步骤1&#xf…

【电商购物管理系统】Python+Django网页界面平台+商品管理+数据库

一、介绍 电商购物管理系统,本系统前端使用HTML、CSS、BootStrap等技术搭建前端界面,后端使用Django框架处理用户的逻辑请求。主要功能有: 管理员登录与管理:管理员可以登录后台,对用户和商品进行增删改查的操作。用…

使用mybatis查询数据库时,表有数据但是为空值null

前言 数据库有数据但是查出来都是空的 解决方法 这里写错了, resultType只能用在数据库字段和实体类字段一致的情况下,而数据库多单词通常用下划线隔开,不能映射到驼峰命名的实体类属性上,因此得使用一个ResultMap 1.定义映射映…

【C++】set/map(重点解析)

目录 一、关联式容器和序列式容器 二、C中的键值对——pair 1.概念 2.定义 3.构造pair 三.set 1.construct构造 2.iterator迭代器 3.insert插入 4.erase删除 5.find查找 6.lower_bound和upper_bound 7.count 四.multiset 五.map 1.insert 2.operator[] 一、…

Pygame实现音乐可视化

pip install pydub pip install ffmpeg pip install pyaudio 完整代码如下: import pygame,sys import random import numpy as np from random import randint import colorsys from pydub import AudioSegment import mathdef rnd_color(): #随机颜色h,s,l…

Python的reshape的用法和reshape(1,-1)、reshape(-1,1)

在创建DataFrame的时候常常使用reshape来更改数据的列数和行数。 reshape可以用于numpy库里的ndarray和array结构以及pandas库里面的DataFrame和Series结构。 reshape(行,列)可以根据指定的数值将数据转换为特定的行数和列数,这个…

用SAM2和Cutie模型目标追踪

一、数据集 视频:每个视频文件夹以图片帧的形式存储 box:给出每个视频第一帧要追踪的物体的box 二、将数据格式转换成SAM2所需要的格式 主要是将box转换成mask的格式,下面这个代码就是将box转换成mask的代码,具体转换原理如下…