opencv-python 4.图片

最全【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【1,Java面试指南 OpenCV是目前最流行的计算机视觉处理库之一,受到了计算机视觉领域众多研究人员的喜爱。计算机视觉是一门研究如何让机器“看”的科学,即用计算机来模拟人的视觉机理,用摄像头代替人眼对目标进行识别、跟踪和测量等,通过处理视觉信息获得更深层次的信息。例如,通过拍摄环绕建筑物一周的视频,利用三维重建技术重建建筑物三维模型;通过放置在车辆上方的摄像头拍摄前方场景,推断车辆能否顺利通过前方区域等决策信息。对于人类来说,通过视觉获取环境信息是一件非常容易的事情,因此有人会误认为实现计算机视觉是一件非常容易的事情。 阅读详情

目标

  • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像
  • 你将要学习如下函数:cv2.imread(),cv2.imshow(),cv2.imwrite()
  • 如何使用Matplotlib 显示一幅图片

4.1 读入图像

cv2.imread()读入图像。这幅图像应该在此程序的工作路径,或者给函数提供完整路径,第二个参数是要告诉函数应该如何读取这幅图片。

  • cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,
    这是默认参数。
  • cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
  • cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的alpha 通道

注意
除了这三个标志,你可以分别简单地传递整数1、0或-1。

import cv2 as cv

src = cv.imread("I:/images/Animation/17.jpg", 0)
src1 = cv.imread("I:/images/Animation/17.jpg", cv.IMREAD_COLOR)
src2 = cv.imread("I:/images/Animation/17.jpg", cv.IMREAD_GRAYSCALE)
src3 = cv.imread("I:/images/Animation/17.jpg", cv.IMREAD_UNCHANGED)
cv.imshow('image', src)
cv.imshow('image1', src1)
cv.imshow('image2', src2)
cv.imshow('image3', src3)
cv.waitKey(0)
cv.destroyAllWindows()

结果

在这里插入图片描述


警告:就算图像的路径是错的,OpenCV 也不会提醒你的,但是当你使用命令print img时得到的结果是None。

4.2 显示图像

使用函数cv2.imshow() 显示图像。窗口会自动调整为图像大小。
第一个参数是窗口的名字,其次才是我们的图像。
你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字

上面的例子中:
cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的ASCII码值,程序将会继续运行。如果没有键盘输入,返回值为-1,如果我们设置这个函数的参数为0,那它将会无限期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键a是否被按下,这个后面我们会接着讨论。
cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删除的窗口名。

建议:一种特殊的情况是, 你也可以先创建一个窗口, 之后再加载图像。这种情况下, 你可以决定窗口是否可以调整大小。使用到的函数是cv2.namedWindow()。初始设定函数标签是cv2.WINDOW_AUTOSIZE。但是如果你把标签改成cv2.WINDOW_NORMAL,你就可以调整窗口大小了。当图像维度太大,或者要添加轨迹条时,调整窗口大小将会很有用

代码:

import cv2 as cv

src = cv.imread("I:/images/Animation/16.jpg", 0)
cv.namedWindow('image', cv.WINDOW_NORMAL)
cv.imshow('image', src)
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述

4.3 保存图像

使用函数cv2.imwrite() 来保存一个图像。首先需要一个文件名,之后才
是你要保存的图像。

import cv2 as cv

src = cv.imread("I:/images/Animation/16.jpg", 0)
cv.imwrite('messigray.png',src)
cv.destroyAllWindows()

结果
在这里插入图片描述
在这里插入图片描述

总结

下面的程序将会加载一个灰度图,显示图片,按下’s’键保存后退出,或者按下ESC 键退出不保存。

import cv2 as cv

src = cv.imread("I:/images/Animation/16.jpg", 0)
cv.imshow('image', src)
k=cv.waitKey(0)
if k == 27:         # wait for ESC key to exit
    cv.destroyAllWindows()
elif k == ord('s'): #wait for 's' key to save and exit
    cv.imwrite('messigray.png',src)
    cv.destroyAllWindows()


使用Matplotlib

Matplotib 是python 的一个绘图库,里头有各种各样的绘图方法。之后会陆续了解到。现在,你可以学习怎样用Matplotib 显示图像。你可以放大图像,保存它等等。

import cv2 as cv
from matplotlib import pyplot as plt

src = cv.imread("I:/images/Animation/16.jpg", 0)
plt.imshow(src, cmap='gray', interpolation='bicubic')
plt.xticks([]), plt.yticks([])   #to hide tick values on X and Y axis
plt.show()

结果:
在这里插入图片描述
注意:彩色图像使用OpenCV 加载时是BGR 模式。但是Matplotib 是RGB模式。所以彩色图像如果已经被OpenCV 读取,那它将不会被Matplotib 正确显示。

做了点笔记
搬运自OpenCV-Python-Tutorial-中文版pdf 段力辉 译

python遍历目录下的所有目录和文件,并用opencv从mp4文件中抽帧得到图片 做深度学习训练的时候,需要从mp4视频文件中抽帧得到图片数据,其中mp4文件是保存在一个大文件夹下的不同子文件夹下面的,用下面的python脚本实现 import cv2 import os """根据传入的目录参数,得到该目录所有子文件夹下的所有的mp4文件""" def get_mp4path(main_dir): list_mp4 = [] for root, ... 阅读详情

相关推荐

使用 Wireshark 进行计算机网络协议分析

文章目录实验前准备一、Wireshark抓包示例二、Wireshark实作1、数据链路层实作一 熟悉Ethernet帧结构实作二 了解子网内/外通信时的 MAC 地址实作三 掌握 ARP 解析过程2、网络层实作一 熟悉 IP 包结构实作二 IP 包的分段与重组实作三 考察 TTL 事件3、传输层实作一 熟悉 TCP 和 UDP 段结构实作二 分析 TCP 建立和释放连接4、应用层实作一 了解 DNS 解析实作二 了解 HTTP 的请求和应答 实验前准备 本部分实验用到的是抓包和协议分析软件——Wiresha

weixin_51087836的博客 8199

精通 Python OpenCV4:第一部分

原文:Mastering OpenCV 4 with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候,你最好真的没有;当别人说你做过某些事的时候,你也最好真的做过。 第 1 部分:OpenCV 4 和 Python 简介 在本书的第一部分中,将向您介绍 OpenCV 库。 您将学习如何安装开始使用 Python 和 OpenCV 进行编程所需的一切。 另外,您还将熟

龙哥盟 2648

告别玄学调参:手把手教你用20元件模型搞定GaN HEMT高频仿真(附S参数提取避坑指南)

本文详细介绍了如何使用20元件模型优化GaN HEMT高频仿真,解决传统16元件模型在10GHz以上频段的误差问题。通过S参数提取避坑指南和实战案例,帮助工程师精准建模分布式电极效应和寄生反馈路径,提升射频电路设计效率。

weixin_42523693的博客 441

最新openCV-Python安装教程(opencv-python版本4.4.0, Python版本: 3.9)

本文是最新的opencv-python 安装教程。 以前的一键安装 pip install opencv-python 在新版本上并不能使用。本文会按照4步详细的介绍。 opencv-python 版本:4.4.0 Python 版本: 3.9 第一步: 打开cmd,进入到你的pip.exe 所在位置, 即在你的python 安装路径里找到scripts文件夹, 比如我的路径是: C:\Users\15162\AppData\Local\Programs\Python\Python39\Scripts (不

家里蹲大学摸鱼学专业优秀毕业生的博客 5万+

STM32CubeMX安装避坑指南:为什么你的Java环境总是报错?

本文针对STM32CubeMX安装过程中最常见的Java环境报错问题,提供了一套完整的诊断与解决方案。文章深入剖析了JRE版本冲突、环境变量配置错误、路径权限等核心原因,并给出了从系统级检查到手动修正环境变量的详细步骤,帮助开发者彻底解决安装难题,顺利开启STM32开发之旅。

prometheus9mon的博客 226

SXU—软件测试方法和技术-朱少民-第三部分 软件测试方法大题汇总-附考点和相关习题及解答

软件测试方法和技术-朱少民-第三部分 软件测试方法—-最少测试用例个数,强一般弱一般强健壮、边界值分析、ns流程图、白盒逻辑覆盖代码、等价类划分,逻辑组合(条件)覆盖,计算圈复杂度等—附考点和相关习题及解答

weixin_63597914的博客 2212

jetson nano——编译安装opencv-python==4.3.0.38

链接:https://pan.baidu.com/s/1HKzQMMWWCv8XKM_kO8CmNA?

qq_63913621的博客 1449

电机驱动和电源等大电流设计中的并联 MOSFET设计

在电机驱动等应用中,半桥拓扑(通常为 3 相)用于生成在电机中产生正扭矩或负扭矩的交流电源信号。想要更高的输出电流能力,只有通过并联形成每个功能开关的 MOSFET,才能实现高输出电流。当多个功率 MOSFET 并联以增加系统整体电流能力容量时,通常假设电流在并联器件之间均等分配或均等共享。然而,在并联 MOSFET 时,需要考虑并联器件之间的电流分配。PCB 布局的若干特性和特定的MOSFET 参数会影响这种分配,并在参数不匹配或布局不对称时导致均流不平衡。

小幽余生不加糖 2487

深入浅出之OpenCV-Python

是 OpenCV 库的 C++ 实现的 Python 包装器。它利用 NumPy 库进行数值运算,是解决计算机视觉问题的快速原型设计工具。OpenCV-Python 是一个跨平台库,可用于所有操作系统 (OS) 平台,包括 Windows、Linux、MacOS 和 Android。OpenCV 还支持图形处理单元 (GPU) 加速。

浩瀚之水的专栏 5589

PCL 均匀采样【2026最新版】

根据输入点云数据创建一个微小的三维立方体集合,然后计算每个三维立方体的重心;由于该重心点不一定是原始点云中的点,直接用该点来表示立方体内所有的点会丢失原始点云的细小特征;所以使用k最近邻搜索寻找距离重心点最近的原始点来代替重心点。

点云侠的博客 41万+

nvidia系列教程-AGX-Orin linux源码下载编译

NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,广泛应用于人工智能、自动驾驶、机器人等领域。为 AGX Orin 编译定制的 Linux 内核,可以更好地适应特定应用需求,增强系统的灵活性。本文将详细介绍如何下载、配置和编译适用于 AGX Orin 的 Linux 内核源码。本文介绍了如何为 NVIDIA AGX Orin 平台下载、配置和编译定制的 Linux 内核源码。通过编译和部署定制内核,您可以更好地控制系统的行为,并根据特定应用需求进行优化。

flypig has a dream! 1283

python+opencv将图片转换为mp4、avi格式的视频

python+opencv将图片转换为mp4、avi格式的视频

进击的扛把子 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用 Python 和 OpenCV 从一组图片合成 MP4 格式的视频

在创建动画、制作幻灯片,从生成的图像数据中导出动态视频时,我们需要将一系列静态图片合成一个视频。本博客使用 Python 和 OpenCV 从一组图片生成 MP4 格式的视频

一个AI从业者的博客 1605

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

将Python Opencv图片对象转成PyQt4中的QImage对象

环境:Windows10平台下,Python27+cv2,PyQt4 问题:有张图片的分辨率是843x1589,32位的RGB转QImage时图片显示异常。 问题代码: # 加载图片 if os.path.exists(imgdir): self.txImgPath.setText(dir) self.img = cv2.imread(imgdir) if self...

ItCivilian的博客 7877

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python3.6+opencv3.4实现鼠标交互查看图片像素

在利用opencv进行图片处理时,经常需要查看图片关心区域或位置的像素数值,苦于没有应手的小软件,我用python3.6+opencv3.4简单编制一个小工具,供大家使用。1.建立标准的鼠标交互函数,当鼠标在图像上移动时,即时显示鼠标位置的像素数值(opencv像素为BGR格式)。print(img[y,x]) #显示鼠标所在像素的数值,注意像素表示方法和坐标位置的不同。if cv2.waitKey() == ord('q'):break #按下‘q'键,退出。2.建立图像窗口,绑定鼠标回调函数。

csdn_manong1的博客 316

python opencv通过4个坐标,剪裁图片(抠图)

效果展示,要裁剪的图片 裁剪出的单词图像(如下) 这里程序我是用在paddleOCR里面,通过识别模型将识别出的图根据程序提供的坐标(即四个顶点的值)进行抠图的程序(上面的our和and就是扣的图),并进行了封装,相同格式的在这个基础上改就是了 [[[368.0, 380.0], [437.0, 380.0], [437.0, 395.0], [368.0, 395.0]], [[496.0, 376.0], [539.0, 378.0], [538.0, 397.0], [495.0, 3

weixin_43134049的博客 3万+

mastering opencv4 with python_Python+OpenCV4:读写输入和输出的简单实践(图片、视频、摄像头)...

典型的文件处理流程如下:利用命令行参数sys.argv命令行参数是读取文件时常用的方式。命令行参数保存在 sys.argv 的列表中,列表的第一个元素是脚本名称,后面的元素是命令行参数:通过以下脚本 sys_argv.py 可以熟悉命令行参数的获取:1 importsys23 print(f'运行的脚本名是:{sys.argv[0]}')4 print(f'sys.argv 列表的长度是:{len...

weixin_39968655的博客 206

python+opencv提取.mp4 视频的每一帧并将其保存为图片

下面是一个完整的示例代码,演示如何使用 OpenCV 提取视频的每一帧并将其保存为图片,使用时需要将mp4文件及路径放至。视频的每一帧并将其保存为图片,可以使用。如果保存的图片方向不对,可以通过使用。,提取的图片存储的路径放至。

xiaofeixia002X的博客 3904

python opencv4 图片合成视频

from pathlib import Path import cv2 image_folder = Path("/home/xx/test") images_files = list(image_folder.glob("**/*.jpg")) # print(images_files) img = cv2.imread(str(images_files[0])) #读取第一张图片 imgInfo = img.shape size = (imgInfo[1],imgInfo[0]) #获取图片宽

heroacool的专栏 387

opencv_python 读取4通道png图片

import cv2 if name == ‘main’: image=cv2.imread(“C:\Users\Administrator\pythonProject\JudicialExpertis\16026615913874.png”,cv2.IMREAD_UNCHANGED) print(image.shape) cv2.IMREAD_UNCHANGED # 读取结果为图片本身维度,如透明图为4维数组,彩色图为3维,黑白图为2维 ...

东方佑 5980

Python+OpenCV4马赛克图片合成

浅模仿一下楚门的世界经典海报,python-opencv根据图像色彩特征匹配图片,形成马赛克图组图片。

cungudafa的博客 1680

【Python_OpenCv】笔记4:python,OpenCv中对图片像素的操作以及图片基本属性的获取方法

#coding:utf-8 #=================================================================================================== #文件说明: # 第三节:图像处理 #开发环境: # Ubuntu14.04+Python2.7+IDLE+IPL #时间地点: #

maweifei的博客 5944

python+opencv 将.mp4视频每一帧转为jpg图片

主要功能: 将视频中的每一帧转化为图片。 1、可以设置将视频全部转化为图片 is_all_frame = True 2、可以设置只取视频的部分帧,如取3-40帧 is_all_frame = False #是否取所有的帧 sta_frame = 3 #开始帧 end_frame = 40 #结束帧 3、可以设置每隔几帧取一次图片 time_interval = 1 # 为1 则连续取 time_interval = 3 # 为3 则每隔3帧保存一次图片 设置好视频路径,和保存的路.

he99774的博客 8988

【Python_Demo_4】 利用OpenCv的ROI区域,将衣服图片切成规则的小图片的python程序

#coding = utf-8 #====================================================================================================== #文件说明: # 利用OpenCv的ROI区域,将衣服图片切成规则的小图片的python程序 #开发环境: # IDLE+PYTHON2

maweifei的博客 5036

[opencv 从零开始 4 ] python 俩张图片叠加,图像加权和

实现目标: 通过python 实现,俩张图片的叠加,已经俩张图片所占的透明度,并且给叠加后的图片变亮。 了解图像的逻辑运算 俩张图片叠加: 测试数据: import numpy as np import cv2 import os path = os.getcwd() bat = cv2.imread("static\\bat.jpg") start = cv2.imread("static\\timg.jpg") #将尺寸调整为一致 new_bat =cv2.resize.

zero 1363
上一篇: setTimeout()
下一篇: opencv-python 5.视频
robot_???
博客等级 码龄8年 38粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值