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 效果

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

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

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

相关文章

Redis 的慢日志

Redis 的慢日志 Redis 的慢日志(Slow Log)是用于记录执行时间超过预设阈值的命令请求的系统。慢日志可以帮助运维人员和开发人员识别潜在的性能瓶颈,定位那些可能导致 Redis 性能下降或响应延迟的慢查询。以下是 Redis 慢日志的相关细节&…

Linux IRC

目录 入侵框架检测 检测流程图 账号安全 查找账号中的危险信息 查看保存的历史命令 检测异常端口 入侵框架检测 1、系统安全检查(进程、开放端口、连接、日志) 这一块是目前个人该脚本所实现的功能 2、Rootkit 建议使用rootkit专杀工具来检查&#…

【算法-PID】

算法-PID ■ PID■ 闭环原理■ PID 控制流程■ PID 比例环节(Proportion)■ PID 积分环节(Integral)■ PID 微分环节(Differential) ■ 位置式PID,增量式PID介绍■ 位置式 PID 公式■ 增量式 PI…

嵌入式数据库-Sqlite3

阅读引言: 本文将会从环境sqlite3的安装、数据库的基础知识、sqlite3命令、以及sqlite的sql语句最后还有一个完整的代码实例, 相信仔细学习完这篇内容之后大家一定能有所收获。 目录 一、数据库的基础知识 1.数据库的基本概念 2.常用数据库 3.嵌入式…

wordpress插件,免费的wordpress插件

WordPress作为世界上最受欢迎的内容管理系统之一,拥有庞大的插件生态系统,为用户提供了丰富的功能扩展。在内容创作和SEO优化方面,有一类特殊的插件是自动生成原创文章并自动发布到WordPress站点的工具。这些插件能够帮助用户节省时间和精力&…

Hides for Mac:应用程序隐藏工具

Hides for Mac是一款功能强大的应用程序隐藏工具,专为Mac用户设计。它能够帮助用户快速隐藏当前正在运行的应用程序窗口,保护用户的隐私和工作内容,避免不必要的干扰。 软件下载:Hides for Mac下载 Hides for Mac的使用非常简单直…

初步了解C++

目录 一:什么是C? 二.C发展史 三:C关键字 四:命名空间 4.1命名空间的介绍 4.2命名空间的使用 4.3命名空间的使用 4.3.1使用作用域限定符 4.3.2 使用using将命名空间的某个成员引入 4.3.3使用using把整个命名空间展开 4.4命名空…

BaseDao封装增删改查

文章目录 什么是BaseDao操作代码增删改查询单个数据查询多个数据 总结 什么是BaseDao BaseDao是: 数据库里负责增加,删除,修改,查询 具体来说是一种接口代码,公共方法的接口类。 在dao层新建basedao,其他dao层接口继承basedao 相…

BC40056 Imports“SolidWorks.Interop.swconst”中指定的命名空间或类型不包含任何公共成员

BC40056 Imports“SolidWorks.Interop.swconst”中指定的命名空间或类型不包含任何公共成员,或者找不到该命名空间或类型。 问题描述原因分析 解决办法 ) 问题描述 严重性 代码 说明 项目 文件 行 警告 BC40056 Imports“SolidWorks.Interop.swconst”中指定的命名…

基于SSM框架的校园失物招领系统:从设计思路到实现细节

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

Java代码基础算法练习-自定义函数之字符串连接-2024.03.30

任务描述: 写一函数,将两个字符串连接起来,然后在主函数中调用该函数实现字符串连接操作。 任务要求: 代码示例: package M0317_0331;import java.util.Scanner;public class m240330 {public static void main(Stri…

Python 妙用运算符重载——玩出“点”花样来

目录 运算符重载 主角点类 魔法方法 __getitem__ __setitem__ __iter__ __next__ __len__ __neg__ __pos__ __abs__ __bool__ __call__ 重载运算符 比较运算符 相等 不等 ! 大于和小于 >、< 大于等于和小于等于 >、< 位运算符 位与 & 位…

腾讯 tengine 替代 nginx

下载地址 变更列表 - The Tengine Web Server 解压 tar -xvf 安装包.gz 进入到解压目录 cd 解压目录 使用 ./configure 命令来指定安装目录,这边指定安装到 /opt/tengine/install路径下 新建install目录 ./configure --prefix/opt/tengine/install 检查是否有缺失的依…

LM算法探寻——答案在022浙江大学信号与系统

LM算法详解 | 宇尘 (gitee.io) 求函数最小值&#xff0c;从另一个角度理解是求误差最小值。 梯度 最陡梯度下降算法和LMS算法原理介绍及MATLAB实现_lms滤波器中的梯度下降-CSDN博客 均值即平均值 (3 封私信 / 56 条消息) FIR滤波器中的冲激响应怎么理解&#xff1f; 和滤波有…

嵌入式linux学习之交叉编译器安装

交叉编译器介绍 ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译&#xff0c;编译就需要编译器&#xff0c;在 Liux 进行 C 语言开发里面使用 GCC 编译器进行代码编译&#xff0c;但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的&#xff01;而我们现在要编…

Linux安装python3

Linux安装python3 本文章中使用的安装包等相关文件&#xff1a; 链接: https://pan.baidu.com/s/1C4PTB6IqXtHM6XSOEMkefg 提取码: wyeq 1.编译环境安装 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc mak…

在 Linux 中通过 SSH 执行远程命令时,无法自动加载环境变量(已解决)

问题场景 目前我的环境变量都存储在 /etc/profile 文件中&#xff0c;当我通过远程 SSH 执行一些命令时&#xff0c;提示命令找不到&#xff0c;如下所示&#xff1a; 问题出现原因 这里找到了一张出自尚硅谷的图片&#xff0c;很好的解释了该问题&#xff1a; 这是由于 Linu…

03---java面试八股文——mybatis-------8题

21、MyBatis实现一对一查询 MyBatis 有两种不同的方式加载关联&#xff1a; 嵌套 Select 查询&#xff1a;通过执行另外一个 SQL 映射语句来加载期望的复杂类型。嵌套结果映射&#xff1a;使用嵌套的结果映射来处理连接结果的重复子集。查看mybatis的关联 MyBatis是一种流行的J…

乡村数字化转型:科技赋能打造智慧农村新生态

随着信息技术的迅猛发展&#xff0c;数字化转型已成为推动社会进步的重要引擎。在乡村振兴的大背景下&#xff0c;乡村数字化转型不仅是提升乡村治理能力和治理水平现代化的关键&#xff0c;更是推动农业现代化、农村繁荣和农民增收的重要途径。本文旨在探讨乡村数字化转型的内…

瑞吉外卖实战学习--5、新增员工功能

新增员工功能 效果图1、开发流程2、页面发送ajax请求,将新增员工的信息以json的形式提交给服务器2.1、在填写信息的时候会发现身份校验比较麻烦,可以在validate中将全局的校验方式去掉,方便填写2.3、看到接口未employee2.4、前端代码分析3、服务器接收到提交的数据并调用ser…