Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制

文件的读取、显示、存取

  • cv2.imread(imagepath,IMREAD.xxx) 读取图像
  • cv2.imshow(窗口名称,mat图片) 显示图像
  • cv2.imwrite(保存的位置,img) 保存图像
# 1. 读取图像 原始图片路径,图片读取模式
cv2.imread(imagepath,IMREAD.xxx)cv2.IMREAD_COLOR 彩色模式读取
cv2.IMREAD_GRAYSCALE 以灰度模式读取图像
cv2.IMREAD_IMREAD_UNCHANGED 以彩色模式+透明度通道读取图像# 2. 显示图像
cv2.imshow(窗口名称,mat图片)# 3. 保存图像
cv2.imwrite(保存的位置,img)

例子:以不同模式读取图像并显示,最后存储其灰度模式图像。


import cv2 as cv
import numpy as np# 以彩色模式读取图像(默认模式)1
src_color_img = cv.imread("./ikun.jpg", cv.IMREAD_COLOR)
cv.imshow("color_img",src_color_img)# 以灰度模式读取 0
src_gray_img = cv.imread("./ikun.jpg", cv.IMREAD_GRAYSCALE)
cv.imshow("gray_img",src_gray_img)# 以彩色+透明通道模式读取
src_colorAlpha_img = cv.imread("./ikun.jpg", cv.IMREAD_UNCHANGED)
cv.imshow("colorAlpha_img",src_colorAlpha_img)# 试着存储一张图片
cv.imwrite("new.jpg",src_gray_img)# 等待输入内容再关闭
cv.waitKey(0)
cv.destroyAllWindows()

image.png
image.png


绘制几何图形

  • cv.line(img ,start ,end ,color ,thickness) 绘制线条
  • cv.circle(img ,centerPoint ,color ,thickness) 绘制圆形
  • cv.rectangle(img ,leftUpper rightDown ,color ,thinkNess) 绘制矩形
  • cv.putText(img ,text ,station ,font ,fontsize) 绘制文本

image.png

import cv2 as cvsrc_img = cv.imread("./ikun.jpg",cv.IMREAD_COLOR)# 绘制图形
# 1. 绘制直线
# img start end color thickness
# 要绘制的图像 绘制起止点 线条颜色 线条宽度
cv.line(src_img,(0,0),(480,480),(255,0,0),3)# 2. 绘制圆形
# img centerPoint color thickness
# 要绘制的图像 圆心和半径 线条颜色 线条宽度
cv.circle(src_img,(420,63),63,(0,0,255),-1)# 3. 绘制矩形
# img leftUpper rightDown color thinkNess
# 要绘制的图像 矩形的左上角右下角坐标  线条颜色 线条宽度
cv.rectangle(src_img,(384,0),(410,128),(0,255,0),3)# 4. 向图像中添加文字
# img text station font fontsize
# 要绘制的图像 文字 文字位置  字体 字体大小
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(src_img,"ikun",(10,400),font,4,(255,255,255),2,cv.LINE_AA)
# 5.显示图像
cv.imshow("last",src_img)cv.waitKey(0)
cv.destroyAllWindows()

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

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

相关文章

Gemini for China 大更新,现已上架 Android APP!

官网:https://gemini.fostmar.online/ Android APP:https://gemini.fostmar.online/gemini_1.0.apk 一、Android APP 如果是 Android 设备,则会直接识别到并给下载链接。PC 直接对话即可。 二、聊天记录 现在 Gemini for China&#xff…

【论文笔记】UniST:通用预训练城市时空预测模型

目录 写在前面1. 通用时空模型的挑战与能力特性2. 构建通用时空模型UniST2.1 大规模时空预训练2.2 时空知识规则引导提示学习 3. UniST的实验与分析3.1 模型预测效果3.2其他实验分析 写在前面 文章标题:UniST: A Prompt-Empowered Universal Model for Urban Spati…

每日一题~ leetcode 402 (贪心+单调栈)

click me! 这个贪心的推导在leetcode上已经很明确了。 click me! 删除k个数,可以先考虑删除一个数。这也是一种常见的思路。(如果进行同样的操作多次,可以先只 考虑一次操作如何实现,或者他的影响。完成这一次操作后,…

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的方式增长。第1周少了1个朋友......

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的 方式增长。第1周少了1个朋友,剩下的朋友数量翻倍;第2周少了2个朋友,剩下的朋友数量 翻倍。一般而言,第N周少了N个朋友,剩下的朋友数量翻倍…

程序员下班为什么不关电脑?难道在偷偷加班?!

不管是周围的程序员朋友还是网上的很多程序员朋友,在下班后都是习惯不关电脑的,关上显示器,拿上手机,快乐下班! 那么,为什么程序员下班都不关电脑?难道他们在偷偷加班? 其实&#x…

锂电池寿命预测 | Matlab基于改进的遗传算法优化BP神经网络的锂离子电池健康状态SOH估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 主要流程如下: 1、首先提取“放电截止电压时间”作为锂电池间接健康因子; 2、然后引入改进的遗传算法对BP神经网络的模型参数进行优化。 3、最后 NASA 卓越预测中心的锂电池数据集 B0005、B0006、B0007对…

昇思25天学习打卡营第11天|MindSpore 助力下的 GPT2:数据集加载处理及模型全攻略

目录 环境配置 数据集下载和获取 数据集拆分 处理数据集 模型构建 ​​​​​​​模型训练 ​​​​​​​模型推理 环境配置 “%%capture captured_output”这一行指令通常旨在捕获后续整个代码块所产生的输出结果。首先,将已预装的 mindspore 库予以卸载。随后&a…

讲个SystemVerilog随机约束小坑

正文 记录个在写SystemVerilog随机约束时遇到的一个小坑,如果没有认真去查看随机结果是否符合预期,还真不容易发现。 为了方便讲述,写了如下示例代码。类cl_a里有个随机变量aa,初始值为222。在module top里对类cl_a例化并进行约…

最近你悟出来什么道理?

点击上方△腾阳 关注 转载请联系授权 大家伙,我是腾阳。 活了近30年的我,终于领悟到,人生的旅途是一场深刻而复杂的自我发现与灵魂成长的壮丽征途。 这不仅仅是对外在世界的探索,更是内心深处的一场革命,是灵魂从懵…

Educational Codeforces Round 167(Div.2) A~D

A.Catch the Coin(思维) 题意: Monocarp 参观了一家有街机柜的复古街机俱乐部。在那里,他对"抓硬币"游戏机产生了好奇。 游戏非常简单。屏幕上的坐标网格是这样的 X X X轴从左到右; Y Y Y轴从下往上&…

小白必看!推荐三本高质量python书籍,让你直接原地起飞

Python是一种多功能语言。它经常用作Web应用程序的脚本语言,嵌入到软件产品中,以及人工智能和系统任务管理。它既简单又强大,非常适合初学者和专业程序员。 python的自学书籍非常多,涉及基础入门、web开发、机器学习、数据分析、…

计网_计算机网络概述

2024.07.03:计算机网络概述 第1节 计算机网络概述 1.1 互连网与互联网1.1.1总结1.1.2 因特网(互联网)发展[自行了解] 1.2 计算机网络组成1.2.1 计算机网络组成方式11.2.2 计算机网络组成方式21.2.3 计算机网络组成方式3 1.3 三种交换方式1.3.1 电路交换(1) 电路交换…

STMF4学习笔记RTC(天空星)

前言:本篇笔记参考嘉立创文档,连接放在最后 #RTC相关概念定义 Real-Time Clock 缩写 RTC 翻译 实时时钟,是单片机片内外设的一种,作用于提供准确的时间还有日期,这个外设有独立的电源,当单片机停止供电…

Linux开发讲课33---线程实现与线程控制步骤简析

线程概述 进程是系统中程序执行和资源分配的基本单位。 每个进程都拥有自己的数据段、代码段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程在演…

隐藏的h1写法(以图换字)

所谓以图换字,即直接使用一张图片或背景,没有文字。我们知道,蜘蛛爬取时是不会获取图片上的内容的,但是如果是添加上文字,即便使用一些字体,也可能达不到图片的显示效果。如何将用户体验与SEO优化相兼容呢&…

移动硬盘“需格式化”危机:应对策略与数据拯救指南

移动硬盘困境:突如其来的“格式化”提示 在日常的数据存储与传输过程中,移动硬盘作为便携且容量可观的存储媒介,深受用户青睐。然而,当这块存储“小能手”突然弹出“需要格式化”的警告时,无疑给用户的数据安全敲响了…

软考中级数据库系统工程师备考经验分享

前几天软考成绩出了,赶紧查询了一下发现自己顺利通过啦(上午63,下午67,开心),因此本文记录一下我的备考经验分享给大家。因为工作中项目管理类的知识没有系统学习过,本来想直接报名软考高级证书…

【IO】文件操作

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 文件1.1 认识文件1.2 分清操作的是内存还是硬盘1.3 路径1.3.1 目录结构1.3.2 相对和绝对路径 1.4 文本文件…

大数据Spark 面经

1: Spark 整体架构 Spark 是新一代的大数据处理引擎,支持批处理和流处理,也还支持各种机器学习和图计算,它就是一个Master-worker 架构,所以整个的架构就如下所示: 2: Spark 任务提交命令 一般我们使用shell 命令提…

Flutter-实现双向PK进度条

如何实现一个双向PK进度条 在Flutter应用中,进度条是一个非常常见的组件。而双向PK进度条则能够展示两个对立的数值,如对战中的双方得分对比等。本文将介绍如何实现一个具有双向PK效果的进度条,并支持竖直和斜角两种过渡效果。 1. 需求 我…