OpenCV基本操作——图像的基础操作

news2024/11/26 18:38:07

目录

  • 图像的IO操作
    • 读取图像
    • 显示图像
    • 保存图像
  • 绘制几何图形
    • 绘制直线
    • 绘制圆形
    • 绘制矩形
    • 向图像中添加文字
    • 效果展示
  • 获取并修改图像中的像素点
  • 获取图像的属性
  • 图像通道的拆分与合并
  • 色彩空间的改变

图像的IO操作

读取图像

cv2.imread()

在这里插入图片描述

import numpy as np
import cv2
img=cv2.imread('messi5.jpg',0)

显示图像

cv2.imshow()

在这里插入图片描述

cv2.imshow('image',img)
cv.waitKey(0)
plt.imshow(img[:,:,::-1])

保存图像

cv2.imwrite()

在这里插入图片描述

cv2.imwrite('messigray.png',img)

绘制几何图形

绘制直线

cv2.line(img,start,end,color,thickness)

在这里插入图片描述

绘制圆形

cv2.circle(img,centerpoint,r,color,thickness)

在这里插入图片描述

绘制矩形

cv2.rectangle(img,leftupper,rightdown,color,thickness)

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

向图像中添加文字

cv2.putText(img,text,station,font,fontsize,color,thickness,cv2.LINE_AA)

在这里插入图片描述

效果展示

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

#1 创建图像
img=np.zeros((512,512,3),np.uint8)

#2 绘制图形
cv.line(img,(0,0),(511,511),(255,0,0),5)
cv.circle(img,(256,256),60,(0,0,255),-1)
cv.rectangle(img,(100,100),(400,400),(0,255,0),5)
cv.putText(img,'hello',(100,150),cv.FONT_HERSHEY_COMPLEX,5,(255,255,255),3)

#3 显示结果
plt.imshow(img[:,:,::-1])
plt.show()

在这里插入图片描述
注:opencv图像坐标系中,左上角是原点,y轴向下,x轴向右,单位像素点

获取并修改图像中的像素点

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

img=np.zeros((256,256,3),np.uint8)
img[100:200,100:200]=(0,0,255)
plt.imshow(img[:,:,::-1])

在这里插入图片描述

获取图像的属性

img.shape
img.dtype
img.size

图像通道的拆分与合并

有时需要在B,G,R通道图像上单独工作。在这种情况下,需要将BGR图像分割成单个通道。或者在其他情况下,可能需要将这些单独的通道合并到BGR图像

b,g,r=cv.split(img)
img=cv.merge((b,g,r))

色彩空间的改变

opencv中有150多种颜色空间转换方法。最广泛使用的转换方法有两种,BGR<->Gray和BGR<->HSV

cv.cvtColor(input_image,flag)

在这里插入图片描述
注:行对应y轴,列对应x轴

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

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

相关文章

Postman: 前端必备工具还是后端独享利器

目录 Postman 的使用场景&#xff1a;适用于前端和后端 Postman 适用于前端的场景 Postman 适用于后端的场景 结论 Postman 的使用场景&#xff1a;适用于前端和后端 Postman 是一个流行的 API 测试与开发工具。它被广泛地应用在前后端开发的过程中&#xff0c;但是很多人…

SCAU操作系统知识点之(八)虚拟内存

1、虚拟地址概念&#xff0c;实地址概念 实存储器&#xff08;实存&#xff09;&#xff1a;内存 虚存储器&#xff08;虚存&#xff09;&#xff1a;磁盘 虚拟地址&#xff1a;在虚拟内存中分配给某一位置的地址&#xff0c;它使得该位置可被访问&#xff0c;就好像是主内的一…

机器学习---对数几率回归

1. 逻辑回归 逻辑回归&#xff08;Logistic Regression&#xff09;的模型是一个非线性模型&#xff0c; sigmoid函数&#xff0c;又称逻辑回归函数。但是它本质上又是一个线性回归模型&#xff0c;因为除去sigmoid映射函 数关系&#xff0c;其他的步骤&#xff0c;算法都是…

网络中的一些基本概念整理总结

1.IP地址 是用来定位主机的网络地址,主要是用于标识主机和其他的一些网络设备. 比如路由器是用点分十进制来表示的 2.端口号 用于标识网络协议中不同的服务或应用程序。 3.协议 这里主要说网络协议,是网络通信时,所有经过的网络设备都必须遵守的一套规定,包含怎么建立连接…

机器学习笔记:李宏毅diffusion model

1 概念原理 首先sample 一个都是噪声的vector然后经过denoise network 过滤一些杂质接着继续不断denoise&#xff0c;直到最后出来一张清晰图片 【类似于做雕塑&#xff0c;一开始只是一块石头&#xff08;噪声很杂的雕塑&#xff09;&#xff0c;慢慢雕刻出想要的花纹】 同一个…

简单易懂的 Postman Runner 参数自增教程

目录 什么是 Postman Runner&#xff1f; Postman Runner 如何实现参数自增&#xff1f; 步骤一&#xff1a;设置全局参数 步骤二&#xff1a;将全局参数带入请求参数 步骤三&#xff1a;实现参数自增 资料获取方法 什么是 Postman Runner&#xff1f; Postman Runner 是…

Redis集群 (三十九)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Redis主从复制 1.1 概念 1.2 作用 1.3 缺点 1.4 流程 1.5 搭建 1.6 验证 二、Reids哨兵模式 2.1 概念 2.2 作用 2.3 缺点 2.4 结构 2.5 搭建 2.6 验证 三、Red…

一文揭秘饿了么跨端技术的演进、实践与落地

跨端技术背景与演进历程 跨端&#xff0c;究竟跨的是哪些端&#xff1f; 自 90 年的万维网出现&#xff0c;而后的三十多年&#xff0c;我们依次经历了 PC 时代、移动时代&#xff0c;以及现在的万物互联&#xff08;的 IoT &#xff09;时代&#xff0c;繁荣的背后&#xff…

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源)

目录 概述 申请/下载证书 部署证书 本地测试访问 服务器部署访问 最后/扩展 总结 概述 本篇博客说明如何将SpringBoot项目开启Https协议提供访问。 博文以步骤【申请/下载证书】&#xff0c;【部署证书】&#xff0c;【本地测试访问】&#xff0c;【服务器部署访问】 &a…

linux0.95(VFS重点)源码通俗解读(施工中)

文件系统在磁盘中的体现 下面是磁盘的内容&#xff0c;其中i节点就是一个inode数组&#xff0c;逻辑块就是数据块可用于存放数据 操作系统通过将磁盘数据读入到内存中指定的缓冲区块来与磁盘交互&#xff0c;对内存中的缓冲区块修改后写回磁盘。 进程(task_struct * task[N…

Python系统学习1-7-字典

一、字典 1、概念及内存图 列表&#xff1a;由一系列变量组成的可变序列容器字典&#xff1a;由一系列键值对组成的可变散列容器字典优势&#xff1a;利用&#xff08;内存&#xff09;空间&#xff0c;换取&#xff08;CPU查找&#xff09;时间 键key 必须唯一且为不…

2023-arxiv-LLaMA: Open and Efficient Foundation Language Models

开放和高效的基础语言模型 Paper&#xff1a;https://arxiv.org/abs/2302.13971 Code: https://github.com/facebookresearch/llama 摘要 本文介绍了 LLaMA&#xff0c;这是⼀个包含 7B 到 65B 参数的基础语⾔模型的集合。作者在数万亿个令牌上训练模型&#xff0c;并表明可以…

windows10 安装WSL2, Ubuntu,docker

AI- 通过docker开发调试部署ChatLLM 阅读时长&#xff1a;10分钟 本文内容&#xff1a; window上安装ubuntu虚拟机&#xff0c;并在虚拟机中安装docker&#xff0c;通过docker部署数字人模型&#xff0c;通过vscode链接到虚拟机进行开发调试.调试完成后&#xff0c;直接部署在云…

针对英特尔酷睿 CPU 优化,Canonical 发布 Ubuntu 实时内核

导读Canonical 今天宣布针对支持时序协调运算&#xff08;TCC&#xff09;和时间敏感网络&#xff08;IEEE TSN&#xff09;的英特尔酷睿处理器&#xff0c;推出优化版实时 Ubuntu 内核。 Canonical 于今年 2 月宣布&#xff0c;为购买 Ubuntu Pro 订阅&#xff0c;使用代号为 …

类加载过程和类加载器

类加载的过程 加载->连接&#xff08;验证->准备->解析&#xff09;->初始化 加载 1.获得二进制字节流&#xff08;可以从本地jar 网络或者动态代理获得&#xff09; 2.转化成方法区中的运行时数据 3.获得类对应的Class对象 加载的过程由类加载器完成&…

opencv实战项目 手势识别-手部距离测量

手势识别系列文章目录 手势识别是一种人机交互技术&#xff0c;通过识别人的手势动作&#xff0c;从而实现对计算机、智能手机、智能电视等设备的操作和控制。 1. opencv实现手部追踪&#xff08;定位手部关键点&#xff09; 2.opencv实战项目 实现手势跟踪并返回位置信息&…

hive高频使用的拼接函数及“避坑”

hive高频使用的拼接函数及“避坑” 说到拼接函数应用场景和使用频次还是非常高&#xff0c;比如一个员工在公司充当多个角色&#xff0c;我们在底层存数的时候往往是多行&#xff0c;但是应用的时候我们通常会只需要一行&#xff0c;角色字段进行拼接&#xff0c;这样join其他…

基于smardaten无代码开发智能巡检系统,让无人机飞得更准

目录 引言需求背景搭建思路开发过程&#xff08;1&#xff09;无人机设备数据接入&#xff08;2&#xff09;无人机巡检任务管理&#xff08;3&#xff09;无人机三维防控监视&#xff08;4&#xff09;运防一体化大屏设计&#xff08;5&#xff09;异常告警管理&#xff08;6&…

nvm安装以及使用

注意事项&#xff1a; 安装前需要卸载原有的node&#xff0c;卸载干净后cmd输入node -v查看&#xff1b; 一&#xff0c;下载nvm 下载&#xff1a;https://github.com/coreybutler/nvm-windows/releases 选择第四个 “nvm-setup.zip”&#xff1b; 二&#xff0c;安装 1&…

Fiddler抓包工具不会用?点这里手把手超详细教学!

Fiddler 是一个 HTTP 协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的 HTTP 通讯。 Fiddler 提供了电脑端、移动端的抓包、包括 http 协议和 https 协议都可以捕获到报文并进行分析&#xff1b;可以设置断点调试、截取报文进行请求替换和数据篡改&am…