【Python-第三方库-OpenCV】随笔

随笔

理论

【1】

说明

  • image.shape释义;
  • 获取图像的属性(信息);
  • 图像的属性包括:行,列,通道,图像数据类型,像素数目等;

正文A

  • 在图像处理中,image.shape表示图像的尺寸和通道数;
  • 对于彩色图像,通常有三个通道(红、绿、蓝);
  • 而灰度图像只有一个通道。

正文B

  • image.shape返回一个表示图像形状的元组;
  • 具体的含义是 (height, width, channels)
  • height表示图像的高度(垂直方向上的像素数);
  • width表示图像的宽度(水平方向上的像素数);
  • channels表示图像的通道数,对于彩色图像通常是3(红、绿、蓝),对于灰度图像是1

正文C

  • 举例,image.shape[2]表示图像的通道数,对于彩色图像来说,它应该是 3;
  • 这个信息在处理图像时很重要,因为它帮助我们正确地解释和处理图像的各个通道。

正文D

  • img.shape[:2]表示取彩色图片的长、宽;
  • img.shape[:3]则取彩色图片的长、宽、通道;

正文E

  • 关于img.shape[0]、[1]、[2]
  • img.shape[0]:图像的垂直尺寸(高度);
  • img.shape[1]:图像的水平尺寸(宽度);
  • img.shape[2]:图像的通道数;
  • 在矩阵中,[0]就表示行数,[1]则表示列数。

实操

【1】

说明

  • 图片的加载、显示和保存;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")# 参数-1为按原通道读入,不写的话默认读入三通道图片,例如(112,112,3)
print(img.shape)  
# 读入的时图片的高度height
print(img.shape[0]) 
# 读入的时图片的宽度weight
print(img.shape[1])  

结果

(607, 1382, 3)
607
1382

【2】

代码

import cv2# 读取图片
img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")
# 读取图片(仅读取灰色)
imgGrey = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg", 0)
#  展示图片
cv2.imshow("img", img)
#  展示图片
cv2.imshow("imgGrey", imgGrey)
#  等待图片的关闭
cv2.waitKey()
# 写出图片
cv2.imwrite(r"C:\Users\SUNxRUN\Desktop\Demo_1.jpg", imgGrey)

疑问

  • imshow的两个参数作用是什么?

【3】

说明

  • 图像显示窗口的创建与销毁;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")# 创建一个窗口
cv2.namedWindow("img", cv2.WINDOW_AUTOSIZE)
cv2.imshow("img", img)
cv2.waitKey()
# 销毁任何建立的窗口
cv2.destroyAllWindows()

注释

cv2.namedWindow(窗口名,属性)
- 属性:指定窗口大小模式;
>>> `cv2.WINDOW_AUTOSIZE`:根据图像大小自动创建大小;
>>> `cv2.WINDOW_NORMAL`:窗口大小可调整;

【4】

说明

  • 图片宽、高、通道数获取;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")
imgGrey = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg", 0)sp1 = img.shape
sp2 = imgGrey.shapeprint(sp1)
print(sp2)

结果

(800, 800, 3)
(800, 800)

【5】

说明

  • 图像像素数目和图像数据类型的获取;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")imgSize = img.size
print(imgSize)ty = img.dtype
print(ty)

结果

1920000
uint8

解释

  • 图像矩阵imgsize属性和dtype属性分别对应图像的像素总数目和图像数据类型;
  • 一般情况下,图像的数据类型是uint8

【6】

说明

  • 获取和修改图片中某点的像素值;

代码

import cv2# 读取图像(使用cv2读进来是一个`numpy`矩阵,像素值介于0~255)
img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")# 读取像素点
px = img[100, 100]
print(px, "   ", type(px))# 修改像素
img[100, 100] = [0, 0, 0]
print(img[100, 100])

结果

[96 75 67]     <class 'numpy.ndarray'>
[0 0 0]

说明

  • 访问和操作图像像素;

代码


说明

  • 生成指定大小的空图像;

代码

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

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

相关文章

C++多线程之通过成员函数作为线程入口

说明&#xff1a; 通过类里面的函数作为线程入口&#xff0c;我个人难理解的地方在于给线程传递参数的时候&#xff0c;怎么找到Main函数。后面会做分析。 首先创建类&#xff1a;创建MyThread类&#xff0c;其中公有函数Main作为入口。这个类的传教比较简单&#xff0c;成员…

php5构造无字母数字的webshell实现任意命令执行

目录 引言 如果是在php7 如果是在php5 现在我们来上传文件 最后的结果&#xff1a; 看本篇前可以先看这一篇&#xff1a;利用异或、取反、自增bypass_webshell_waf-CSDN博客 引言 上一篇介绍了如何构造出一个无字母数字的webshell&#xff0c;但是如果后端的代码变成了这…

采购业务中的主数据

目录 一、维护BP主数据业务伙伴BP的概念业务伙伴涉及的表业务伙伴维护操作一次性客商数据 二、维护物料主数据三、维护采购信息记录四、与FI相关集成点物料主数据的价格控制评估类与科目确定 一、维护BP主数据 业务伙伴BP的概念 在S/4HANA中&#xff0c;SAP引入了BP(Business…

Linux沙箱技术

一、Linux沙箱技术简介 在Linux系统中&#xff0c;由于其开放源代码和广泛应用的特点&#xff0c;安全性成为了一个关键问题。为了确保系统的安全性&#xff0c;研究者们提出了许多解决方案&#xff0c;其中之一就是进程沙箱隔离。 进程沙箱隔离是一种将应用程序与底层操作系…

使用 Java 来完成高德地图开发平台解决定位和解析问题

三军可夺帅也&#xff0c;匹夫不可夺志也 1、高德开发平台&#xff1a;平台地址 2、注册高德开发平台账号 3、导入SDK J版 import java.net.URL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.alibaba.fastjson.JSONObject;public class main {priva…

SpringBoot整合Activiti7——消息事件(十)

文章目录 消息事件开始事件中间事件边界事件代码实现xml文件测试流程流程执行步骤 消息事件 消息事件只有一个接收者&#xff0c;消息具有名字与载荷。 信息会储存在 act_ru_event_subscr 表中。 <!-- 定义消息 --> <message id"msgId1" name"msgName…

聊聊什么是IO流

目录 Java IOIO 基础Java IO 流了解吗&#xff1f; IO 设计模式1、装饰器模式2、适配器模式适配器模式和装饰器模式有什么区别呢&#xff1f;3、工厂模式4、观察者模式 IO 模型有哪些常见的 IO 模型&#xff1f;BIO(Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous …

51单片机的智能加湿器控制系统【含proteus仿真+程序+报告+原理图】

1、主要功能 该系统由AT89C51单片机LCD1602显示模块DHT11湿度传感器模块继电器等模块构成。主要适用于智能自动加湿器、湿度保持、湿度控制等相似项目。 可实现基本功能: 1、LCD1602液晶屏实时显示湿度信息 2、DHT11采集湿度 3、按键可以调节适宜人体湿度的阈值范围&#xff0…

西南科技大学模拟电子技术实验三(BJT单管共射放大电路测试)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) 二、画出并填写实验指导书上…

京东数据运营-京东数据开放平台-鲸参谋10月粮油调味市场品牌店铺销售数据分析

鲸参谋监测的京东平台10月份料油调味市场销售数据已出炉&#xff01; 根据鲸参谋数据显示&#xff0c;今年10月份&#xff0c;京东平台粮油调味市场的销量将近4600万&#xff0c;环比增长约10%&#xff0c;同比降低约20%&#xff1b;销售额将近19亿&#xff0c;环比增长约4%&am…

华为鲲鹏+银河麒麟V10编译FreeSWITCH1.10.9

# uname -r 4.19.90-17.5.ky10.aarch64 本想编译FreeSWITCH1.10.7&#xff0c;但碰到点问题&#xff0c;后来改1.10.9&#xff0c;相对比较顺利&#xff0c;记录如下&#xff1a; 先安装工具/开发库等&#xff1a; yum install -y git yum install -y wget yum install -y au…

ElasticSearch之Force merge API

使用本方法&#xff0c;可以触发强制合并操作。 默认情况下&#xff0c;ElasticSearch会在后台周期性触发合并操作&#xff0c;因此不需要用户刻意使用本方法。 使用强制合并的弊端&#xff1a; 可能会产生大于5G的segment对象&#xff0c;而ElasticSearch后台自动触发的合并…

Python,非二进制的霍夫曼编码

一般来说&#xff0c;霍夫曼编码是二进制的&#xff0c;但是非二进制的也可以。本文中&#xff0c;通过修改N&#xff0c;可以得到任意进制的霍夫曼编码。 非二进制编码的作用&#xff1a;例如&#xff0c;设计九键输入法&#xff0c;希望根据拼音的概率来编码&#xff0c;常用…

Apache Flink(一):Apache Flink是什么?

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

五、ZooKeeper的shell操作

目录 1、客户端连接 2、shell基本操作 2.1 操作命令

重生之我是一名程序员 47 ——字符串函数 (6)

哈喽啊大家晚上好 &#xff0c;前面呢已经给大家介绍了5个字符串函数&#xff0c;今天呢再给大家带来一个&#xff0c;它就是——strstr函数。 首先呢&#xff0c;还是先带大家认识一下它。strstr函数&#xff08;string search&#xff09;是C语言标准库中的一个字符串处理函…

力扣225-用队列实现栈

文章目录 力扣225-用队列实现栈示例代码实现总结收获 力扣225-用队列实现栈 示例 代码实现 class MyStack {Queue<Integer>queue1;Queue<Integer>queue2;public MyStack() {queue1new LinkedList<Integer>();queue2new LinkedList<Integer>();}public…

【LeetCode:1094. 拼车 | 差分数组】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

qt 5.15.2 网络文件下载功能

qt 5.15.2 网络文件下载功能 #include <QCoreApplication>#include <iostream> #include <QFile> #include <QTextStream> // #include <QtCore> #include <QtNetwork> #include <QNetworkAccessManager> #include <QNetworkRep…

【高效开发工具系列】Hutool Http工具类

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…