python open cv(图像处理的基本操作)

概要图

1读取图像

cv2.imread() 函数是OpenCV库中用于读取图像文件的函数。它有两个参数:

  1. 文件名:这是第一个也是必需的参数,它指定了要读取的图像文件的路径和文件名。这个路径可以是相对路径,也可以是绝对路径。

  2. 标志:这是第二个参数,它是可选的,用于指定图像的读取方式。这个参数有三个预定义的值,通常使用以下两个:

    • cv2.IMREAD_COLOR:这是默认值,它加载一个彩色图像。任何图像的透明度都会被忽略。在代码中通常用数字1表示。
    • cv2.IMREAD_GRAYSCALE:这个标志将图像以灰度模式读取。在代码中通常用数字0表示。
    • cv2.IMREAD_UNCHANGED:这个标志以包括alpha通道(如果存在)的方式加载图像。在代码中通常用数字-1表示。
import cv2
tupian ='D:\\1\\GenRen\\xvexi\\python\\python_opencv_\\li1.jpg'
image = cv2.imread(tupian)
print("ok1")
image2 = cv2.imread('li1.jpg')
print("ok2")
print(image2)

扩展

Alpha 通道是图像处理中的一个术语,它代表了一个额外的颜色通道,用于存储图像中每个像素的透明度信息。Alpha 通道通常与红色(R)、绿色(G)和蓝色(B)通道一起使用,构成所谓的 RGBA 颜色空间,其中:

  • R(红色)通道代表红色分量。
  • G(绿色)通道代表绿色分量。
  • B(蓝色)通道代表蓝色分量。
  • A(Alpha)通道代表透明度分量。

Alpha 通道的工作原理如下:

  • Alpha 值为 0 表示像素是完全透明的。
  • Alpha 值为 255(或在其位深度范围内的最大值)表示像素是完全不透明的。
  • Alpha 值介于 0 和 255 之间表示像素具有不同程度的半透明性。

以下是 Alpha 通道的一些用途:

  1. 图像合成: Alpha 通道允许图像合成,其中可以将一个图像叠加到另一个图像上,而不显示背景。这在创建图形和视觉效果时非常有用。

  2. 透明效果: 在网页设计和动画中,Alpha 通道用于创建透明背景的图像,允许背景颜色或图像透过来。

  3. 去背景: 在图像编辑中,可以使用 Alpha 通道去除图像的背景,以便将对象从其背景中分离出来。

  4. 视觉效果: 在电影和视频游戏中,Alpha 通道用于创建烟雾、火焰和其他半透明的视觉效果。

  5. 图形软件: 在图形设计软件(如Adobe Photoshop)中,Alpha 通道用于创建和编辑选择区域,以及保存和载入选区。

注意

路径不可有中文

'D:/li1.jpg'  等于  'D:\\li1.jpg' 

2显示图像

2-1   cv2.imshow()

cv2.imshow() 是 OpenCV 库中的一个函数,用于显示图像。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了很多处理图像和视频的函数。

以下是 cv2.imshow() 函数的基本用法:

cv2.imshow(window_name, image)
  • window_name:字符串类型,表示显示图像的窗口名称。(一个名字)
  • image:要显示的图像,通常是 NumPy 数组格式。(读取的图像数据
import cv2image1 = cv2.imread('li1.jpg')
print(image1)
cv2.imshow('chuang_ko', image1)

2-2   cv2.waitKey()

cv2.waitKey() 函数是 OpenCV 库中的一个函数,用于等待一个按键事件发生。这个函数通常用于在显示图像的窗口中暂停程序,直到用户按下某个键。以下是关于 cv2.waitKey() 的详细信息:

函数原型:

retval = cv2.waitKey([delay])

参数:

  • delay:这是一个可选的整数参数,指定了函数等待按键事件的时间(以毫秒为单位)。如果 delay 是正数,函数将等待指定的毫秒数;如果在这段时间内没有按键事件发生,函数将返回 -1。如果 delay 是 0,函数将无限期等待按键事件。

返回值:

  • retval:返回值是按键的 ASCII 码值,或者如果没有按键事件发生且 delay 为正数时,返回 -1。如果 delay 为 0 并且用户按下了某个键,retval 将是按键对应的 ASCII 码值。
  • 规定时间没按下返回  -1
  • 规定时间按下返回按下键的ASCII码
  • 值为0时一直等待按下

2-3   cv2.destroyAllWindows()

在 OpenCV 中,cv2.destroyAllWindows() 函数用于关闭所有已经打开的 OpenCV 窗口。这个函数没有返回值,它的作用是清理所有与 OpenCV 窗口相关的资源。

(注意大小写)

import cv2image1 = cv2.imread('li1.jpg')
print(image1)
cv2.imshow('chuang_k1o', image1)
cv2.destroyAllWindows()
cv2.imshow('chuang_ko', image1)
retval1 = cv2.waitKey(0)  #用于等待一个按键事件发生
print(retval1)
扩展

cv2.destroyWindows() 是 OpenCV 库中的一个函数,用于关闭指定的 OpenCV 窗口。与 cv2.destroyAllWindows() 不同,cv2.destroyWindows() 允许你指定要关闭的窗口名称列表。

# 关闭指定的窗口
cv2.destroyWindow('Window 1')# ‘Window 1’  是窗口的名字

3保存图像

cv2.imwrite() 是 OpenCV 库中的一个函数,用于将图像保存到文件中。这个函数非常有用,尤其是在处理图像后需要保存结果时。

函数原型如下:

retval = cv2.imwrite(filename, img)

参数:

  • filename:这是一个字符串,指定了要保存图像的文件路径和文件名。文件扩展名(如 .jpg.png.bmp 等)决定了图像的保存格式。
  • img:这是一个 NumPy 数组,代表要保存的图像。

返回值:

  • retval:这是一个布尔值,表示图像是否成功保存。如果保存成功,返回 True;如果失败,返回 False
import cv2image1 = cv2.imread('li1.jpg')
print(image1)
cv2.imwrite("li2.jpg", image1)#第一个参数是文件路径和文件名
#只写文件名表示为当前路径

注意

路径不可有中文

4获取图像属性

  • image.shape:返回一个元组,表示图像的高度、宽度和通道数(对于彩色图像是 3,对于灰度图像是 1)。
  • image.size:返回一个整数,表示图像中元素的总数。对于彩色图像,这将是高度乘以宽度乘以通道数。
  • image.dtype:返回图像数据类型。通常,OpenCV 中的图像数据类型是 uint8,表示图像中的每个像素值都是一个 8 位的无符号整数。
import cv2# 读取图像
image1 = cv2.imread('li1.jpg')# 打印图像的形状
print(image1.shape)  # 输出是 (height, width, channels)(高,宽,通道)# 打印图像的大小(元素的总数)
print(image1.size)  # 输出是 height * width * channels# 打印图像的数据类型
print(image1.dtype)  # 输出是 uint8

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

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

相关文章

【practise】只出现一次的数字

现在给你一个数组,里面放了一些数字,里面都是两两成对,只有一个数字是单独的,要求找出其中只出现一次的数字。相必这道题是非常简单了,有很多解法比如说用暴力求解?比如说用位运算?甚至说用哈希…

【C++标准模版库】list的介绍及使用

list 一.list的介绍二.list的使用1.list 构造函数2.list 空间大小3.list 增删查改4.list 迭代器的使用1.正向迭代器2.反向迭代器 5.list 其他成员函数 三.vector与list关于sort性能的比较 一.list的介绍 C中的list标准模板库(STL)是C标准库中的一个重要组…

PCL1.11.0下载安装(Windows)

PCL1.11.0下载安装(Windows) PCL安装需要的几个模块如下图所示: 一、PCL1.11.0下载 PCL以1.11.0版本为例,打开下载连接(PCL下载) 下载PCL-1.11.0-AllInOne-msvc2019-win64.exe和pcl-1.11.0-pdb-msvc2019-…

Vue3 列表自动滚动播放(表头固定、列表内容自动滚动播放)+ vue3-seamless-scroll - 附完整示例

vue3-seamless-scroll:Vue3.0 无缝滚动组件,支持Vite2.0,支持服务端打包 目前组件支持上下左右无缝滚动,单步滚动,并且支持复杂图标的无缝滚动,目前组件支持平台与Vue3.0支持平台一致。 目录 效果 一、介绍…

腾讯云AI代码助手评测:如何智能高效完成Go语言Web项目开发

腾讯云AI代码助手评测:如何智能高效完成Go语言Web项目开发 🚀 文章目录 腾讯云AI代码助手评测:如何智能高效完成Go语言Web项目开发 🚀背景引言开发环境介绍腾讯云AI代码助手使用实例1. 代码补全2. 技术对话3. 代码优化4. 规范代码…

(计算机网络)物理层

目录 一.基本概念 二.基本术语 三.码元 四.多路复用技术 一.基本概念 1. 2. 3. 4. 5. 6. 7. 8. 9. 二.基本术语 1. 2. 3.早期--公用的电话网传输数据,网络上传的是模拟信号,调制解调器--将数字信号转化成模拟信号,最后,调制解…

NSSCTF-GDOUCTF 2023新生赛

[GDOUCTF 2023]hate eat snake 考察:js代码审计 打开题目,发现需要坚持60秒,那么简单的一个思路就是修改得分的变量>60即可 办法1:修改变量 右键查看源代码,之后发现有一个snake.js的文件,ctrlf搜索i…

程序设计基础(c语言)_补充_1

1、编程应用双层循环输出九九乘法表 #include <stdio.h> #include <stdlib.h> int main() {int i,j;for(i1;i<9;i){for(j1;j<i;j)if(ji)printf("%d*%d%d",j,i,j*i);elseprintf("%d*%d%-2d ",j,i,j*i);printf("\n");}return 0…

DS18B20数字温度传感器操作解析

文章目录 引言特点工作原理引脚说明配置寄存器温度寄存器时序初始化时序写时序读时序 引言 DS18B20 是一种广泛使用的数字温度传感器&#xff0c;具有高精度和易用性。是Dallas Semiconductor公司&#xff08;现为Maxim Integrated公司&#xff09;生产的单总线数字温度传感器…

关爱提示器-不要久坐

关爱提示器-不要久坐 最近身体不适腰疼脖子疼的&#xff0c;去医院检查&#xff0c;大夫提示注意身体不要久坐多运动等等之类的&#xff0c;哎&#xff0c;生活所迫&#xff0c;披星戴月兢兢业业的&#xff0c;到头来还要被批判躺平不努力。哎&#xff0c;先关爱自己吧&#xf…

Java | Leetcode Java题解之第322题零钱兑换

题目&#xff1a; 题解&#xff1a; public class Solution {public int coinChange(int[] coins, int amount) {int max amount 1;int[] dp new int[amount 1];Arrays.fill(dp, max);dp[0] 0;for (int i 1; i < amount; i) {for (int j 0; j < coins.length; j)…

Dynamo修改共享参数绑定的分组——群问题整理005

Hello大家好!我是九哥~ 今天继续给大家分享一些短平快的小教程,是来自群里面的问题。 问题005:Dynamo修改共享参数绑定的分组 今天看到群里询问如何修改参数所在的分组,查了下API,项目参数是不行的,不过共享参数是允许ReInsert()的,那么就好办了。 然后在Document下…

JavaEE 第4节 线程安全问题

小贴士&#xff1a; 本节题目所述的主题其实非常的庞大&#xff0c;如果要细讲起来&#xff0c;一篇博客远远不够&#xff0c;本篇博客只会每个方面的内容做一个简要描述&#xff0c;详细的内容在后续同专栏博客中都会涉及到的&#xff0c;如果有需要可以一步到本专栏的其他博客…

python运行js之execjs基本使用

python运行js之execjs基本使用 现在大部分网站都使用JS加密和JS加载的情况&#xff0c;数据并不能直接被抓取出来&#xff0c;这时候就需要使用第三方类库来执行JS语句。 官网&#xff1a;https://pypi.org/project/PyExecJS/ 使用前提&#xff1a;电脑需要安装 Node.js 一、安…

最新口型同步技术EchoMimic部署

EchoMimic是由蚂蚁集团推出的一个 AI 驱动的口型同步技术项目&#xff0c;能够通过人像面部特征和音频来帮助人物“对口型”&#xff0c;生成逼真的动态肖像视频。 EchoMimic的技术亮点在于其创新的动画生成方法&#xff0c;它不仅能够通过音频和面部关键点单独驱动图像动画&a…

【星闪开发连载】WS63E 星闪开发板和hi3861开发板的对比

此次星闪开发者体验官活动使用的开发板都是NearLink_DK_WS63E开发板&#xff0c;它和NearLink_DK_WS63开发板的区别在于具有雷达感知功能。从开发板的照片也可以看到WS63E有一个雷达天线接口。 我们把WS63E开发板和hi3861开发板的功能做了简单的对比&#xff0c;见下表。 参数…

用户看广告获取密码访问网页内容流量主模式源码

简介&#xff1a; 全开源付费进群流量主模式&#xff0c;用户看广告获取密码访问网页内容&#xff0c;网站生成内容&#xff0c;用户需要浏览内容跳转至小程序&#xff0c;观看广告后获取密码&#xff0c;输入密码查看网页内容。 与之前得9.9付费进群区别就是内容体现在了网页…

iPhone苹果手机Safari浏览器怎么收藏网页?

iPhone苹果手机Safari浏览器怎么收藏网页? 1、iPhone苹果手机上找到并打开Safari浏览器&#xff0c;并访问要收藏的网页&#xff1b; 2、打开网页后&#xff0c;点击导航上的更多功能&#xff1b; 3、在更多里&#xff0c;找到并点击添加到个人收藏&#xff0c;完成储存即可添…

JavaSE面试篇章——一文干破Java集合

文章目录 Java集合——一文干破集合一、集合的理解和好处1.1 数组1.2 集合 二、集合的框架体系三、Collection接口和常用方法3.1 Collection接口实现类的特点3.2 Collection接口遍历元素方式1-使用Iterator(迭代器)3.2.1 基本介绍3.2.2 迭代器的执行原理3.2.3 Iterator接口的方…

java基础 之 equals和==的区别

文章目录 浅谈“”特点比较基本类型比较引用类型 浅谈“equals”背景和使用重写equals自定义类为什么需要重写equals方法 总结附录代码及文章推荐 前言&#xff1a; 1、8大基本数据类型&#xff0c;它们的值直接代表了某种数据&#xff0c;不是对象的实例&#xff0c;不能使用n…