Python之Opencv教程(1):读取图片、图片灰度处理

1、Opencv简介

OpenCV(Open Source Computer Vision Library)是一个用于计算机视觉和图像处理的开源库,提供了丰富的图像处理、计算机视觉和机器学习功能。它支持多种编程语言,包括C++、Python、Java等,广泛应用于图像处理、目标检测、人脸识别、图像分割、运动跟踪等领域。

2、Opencv安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

在这里插入图片描述

3、Opencv功能1:图像读取和显示

3.1 代码

import cv2

# 读取图片,路径中不能有中文
img = cv2.imread("images/KD.jpg")
# 显示图片
cv2.imshow('KD7777777', img)
# 等待键盘输入,单位毫秒,传入0表示永久等待
cv2.waitKey(0)
# OpenCV底层是C++编写的,需要释放内存
cv2.destroyAllWindows()

3.2 效果

在这里插入图片描述

4、Opencv功能2:图像灰度

4.1 为什么要进行图片灰度

在OpenCV中,将彩色图像转换为灰度图像是常见的图像处理操作之一。灰度图像是指每个像素点只有一个通道,用于表示图像的亮度或灰度级别,而不包含彩色信息。灰度图像通常用于简化图像处理和计算,减少数据量,同时保留了图像的重要信息。

灰度图像的作用包括:

  1. 简化图像:将彩色图像转换为灰度图像可以简化图像数据,减少存储空间和处理复杂度。
  2. 提取图像亮度信息:灰度图像反映了图像中的亮度分布,有助于分析和处理图像的光照条件。
  3. 增强图像对比度:灰度图像可以通过调整对比度和亮度来增强图像的视觉效果。

辅助图像处理:许多图像处理算法和技术(如边缘检测、图像分割等)在灰度图像上更容易实现和应用,因为灰度图像只有一个通道。

4.2 代码

import cv2

# 读取原始图片
src = cv2.imread("images/girl.jpg")
# 展示原始图片
cv2.imshow("KD", src)
# 进行图片灰度
gray_img = cv2.cvtColor(src, code=cv2.COLOR_BGR2GRAY)
# 展示灰度图片
cv2.imshow("KD_GRAY", gray_img)
# 设置灰度图片一直显示
cv2.waitKey(0)
# 释放内存
cv2.destroyAllWindows()
# 保存灰度图片
cv2.imwrite("images/girl_GRAY.jpg", gray_img)

4.3 效果

图片灰度之后的效果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《VMamba》论文笔记

原文链接: [2401.10166] VMamba: Visual State Space Model (arxiv.org) 原文笔记: What: VMamba: Visual State Space Model Why: 多年以来CNN和VIT作为视觉特征提取的主流框架 CNN具有模型简单,共享权重&…

Java基础之运算符(整合)

文章目录 一.运算符算数运算符练习: 二.算术运算符的高级用法""操作的三种情况数字相加字符串相加字符相加 三.自增自减运算符基本用法 四.赋值运算符&关系运算符赋值运算符关系运算符逻辑运算符 五.短路逻辑运算符六.三元运算符 一.运算符 运算符: 对字面量或…

36.HarmonyOS鸿蒙系统 App(ArkUI) 创建第一个应用程序hello world

36.HarmonyOS App(ArkUI) 创建第一个应用程序helloworld 线性布局 1.鸿蒙应用程序开发app_hap开发环境搭建 3.DevEco Studio安装鸿蒙手机app本地模拟器 打开DevEco Studio,点击文件-》新建 双击打开index.ets 复制如下代码: import FaultLogger from ohos.fau…

kaggle竞赛宝典 | 最新时间序列统一大模型,秒杀各类时序任务!

本文来源公众号“kaggle竞赛宝典”,仅用于学术分享,侵权删,干货满满。 原文链接:最新时间序列统一大模型,秒杀各类时序任务 作者:Fareise 最新时间序列统一大模型UniTS,秒杀各类时序任务&…

ubuntu20.04安装截图工具flameshot

ubuntu20.04 自带的截图工具,可以使用快捷键“shift printScreen” ,但是它不能对截图进行编辑。 现在安装截图工具 flameshot,使用以下命令: sudo apt install flameshot 安装完成后,使用以下命令打开: flamesho…

Flutter 开发学习笔记(1):第一个简单的Flutter项目(上)

文章目录 前言相关链接初始化项目设置键盘映射建议使用AnLink链接物理机。 项目配置日志打印官方案例添加依赖主函数更换添加最简单的按钮Flutter 项目结构Flutter项目入口Flutter的MyApp函数 更新视图直接修改浅拷贝父节点数据思考 修改布局子节点重构子节点布局重构多次扩展布…

操作系统--死锁

目录 说明使用互斥锁时死锁是如何发生的。 系统模型: 死锁的特性: 处理死锁的方法: 死锁的预防: 死锁避免: 说明使用互斥锁时死锁是如何发生的。 我们先来看一个例子: 当两列火车在十字路口逼近时&am…

linux忘记mysql的root密码,强制修改

1、登录linux后编辑mysql的配置文件:vi /etc/my.cnf 2、添加如下代码,表示跳过授权表登录mysql 编辑完成后,按Esc键,":wq"退出编辑并保存修改内容。 3、使用命令:service mysqld restart 重启mysql服务. …

【No.21】蓝桥杯组合数学|数位排序|加法计数原理|乘法计数原理|排列数|组合数|抽屉原理|小蓝吃糖果|二项式定理|杨辉三角|归并排序(C++)

组合数学 数位排序 【问题描述】 小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。 例如,2022 排在 409 前面, 因为 2022 的数位之和是 6,小于 409 的数位 之和 13。…

【Web应用技术基础】JavaScript(1)——案例:猜数字

上一个博客发了视频。这个博客因为不能插入视频&#xff0c;所以给大家一张一张截图的 点击“重新开始一局游戏” <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"…

Java类与对象:从概念到实践的全景解析!

​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ 文章专栏&#xff1a;javaSE的修炼之路 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 1、类的定义格式 在java中定义类时需要用到…

Spring: 在SpringBoot项目中解决前端跨域问题

这里写目录标题 一、什么是跨域问题二、浏览器的同源策略三、SpringBoot项目中解决跨域问题的5种方式&#xff1a;使用CORS1、自定 web filter 实现跨域(全局跨域)2、重写 WebMvcConfigurer(全局跨域)3、 CorsFilter(全局跨域)4、使用CrossOrigin注解 (局部跨域) 一、什么是跨域…

matlab 点云可视化(6)——点云按强度进行可视化

目录 一、功能概述1、算法概述2、主要函数二、代码示例三、结果展示四、参考链接本文由CSDN点云侠原创原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、功能概述 1、算法概述 点云按强度进行可视化 2、主要函数

Request和Response

Request&#xff08;请求&#xff09;&Response&#xff08;响应&#xff09; Request&#xff1a;获取请求数据 Response&#xff1a;设置响应数据 Request继承体系 1.Tomcat需要解析请求数据&#xff0c;封装为request对象&#xff0c;并且创建request对象传递到servic…

分治实现快速排序和归并排序

本文用于记录个人算法竞赛学习&#xff0c;仅供参考 一.快速排序&#xff08;升序为例&#xff09; 思想&#xff1a;确定分界点x&#xff0c;将小于分界点的值放在分界点的左边&#xff0c;将大于分界定的值放在分界点的右边&#xff0c;再递归处理两边的左右区间。 步骤&am…

HR应用人才测评开展招聘,可以显著提升效率

某汽车零部件武汉有限公司诚聘库管员1名…… 孟X毅&#xff0c;男&#xff0c;29岁,市场营销专业,做过生产主管,求一份白班工作。 王X宸&#xff0c;女&#xff0c;22岁&#xff0c;有一年会计经验&#xff0c;求相似工作。 张汉X&#xff0c;男&#xff0c;31岁&#xf…

Python程序怎么打包成exe文件

前言 pyinstaller可以将.py文件打包成.exe可执行文件&#xff0c;即使别人的电脑上没有搭建Python环境&#xff0c;也是可以直接运行程序的。 pyinstaller安装 首先打开cmd&#xff0c;在里面输入下面这一行命令&#xff0c;回车即可。 pip install pyinstaller 我运行命令…

TR2 - Transformer模型的复现

目录 理论知识模型结构结构分解黑盒两大模块块级结构编码器的组成解码器的组成 模型实现多头自注意力块前馈网络块位置编码编码器解码器组合模型最后附上引用部分 模型效果总结与心得体会 理论知识 Transformer是可以用于Seq2Seq任务的一种模型&#xff0c;和Seq2Seq不冲突。 …

Echarts地图之——如何给地图添加外边框轮廓

有时候我们希望给地图外围加一圈边框来增加美感 但实际情况中&#xff0c;我们需要把国界的边框和各个省份属于国界的边框相吻合&#xff0c;否则就会造成两者看起来是错位的感觉 这就需要我们把echarts registerMap的全国省份json和国界边框json的坐标相一致。 这个json我们可…

WEPE系统安装纯净版window11教程(包含pe内系统安装方法)

目录 一.安装u盘启动盘 1.1制作安装系统引导盘 1.2下载保存windows镜像 1.3根据自己电脑品牌查询进入BIOS设置的方法 1.4我们成功进入了PE 二.重装系统 2.1遇到问题 2.2重新来到这个界面 三.PE中基本软件的作用 四.学习声明 今天不敲代码&#xff0c;今天来讲讲We P…