Opencv+Python图像基本操作

这篇具有很好参考价值的文章主要介绍了Opencv+Python图像基本操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

图像的读取、显示和保存

获取图像属性 

图像截取

 绘图功能

画线

画矩形

画圆圈

画椭圆

         画多边形

向图像添加文本



图像的读取、显示和保存

# 导入 OpenCV
import cv2
# 读取图片-与python文件相同目录
img = cv2.imread("image.png", cv2.NORM_HAMMING)
# 显示窗口命名 0表示cv2.WINDOW_NORMAL
cv2.namedWindow("demo",0)
# 窗口调整大小
cv2.resizeWindow("demo", 400, 500)
# 显示加载的图像
cv2.imshow("demo", img)
# 窗口保持显示(回车键可关闭窗口)
cv2.waitKey(-1)
# 销毁所有窗口
cv2.destroyAllWindows()
# 保存图像
cv2.imwrite("D:\\demo.png", img)

cv2.imread()cv2.imshow()cv2.imwrite()分别表示读取图片,显示图片,写入图片 

  • retval = cv2.imread(文件名 [,显示控制参数])
  1. cv2.IMREAD_UNCHANGED:不改变,原始图像
  2. cv2.IMREAD_GRAYSCALE:灰度
  3. cv2.IMREAD_COLOR:彩色
  • Nonc = cv2.imshow(窗口名, 图像变量名)
  • retval = cv2.waitKey([delay])
    delay 说明:

    delay > 0 :等待 delay 毫秒

    delay < 0 :等待键盘单击

    delay = 0 :无限等待

  • cv2.destroyAllWindows()
    销毁所有窗口,清除内存的缓存

获取图像属性 

img.shape  img.dtype  img.size

OpenCV像素通道就按照B、G、R的顺序存放   B->BLUE 蓝色  G->Green 绿色  R->RED红色

# 导入 OpenCV
import cv2
# 读取图片-与python文件相同目录
img = cv2.imread("image.png", cv2.NORM_HAMMING)
#获取图像形状
print(img.shape) #打印结果:(2732, 1878, 3)  表示 高 宽 通道数  (h,w,c)
print(len(img)) #打印高:2732
print(len(img[0]))#打印高:1878
#获取图像类型
print(img.dtype) #打印结果:uint8
#获取图像像素个数
print(img.size)  #打印结果:15392088

uint8表示无符号整数,没有符号位,8个比特位全部用来表示整数,所以数据范围是0到255。

可以用比较小的图片直观的看下打印出来的矩阵

eg:(4,2,3)的矩阵

import numpy as np
a = np.array([
    [[1, 2, 3], [4, 5, 6]],
    [[1, 2, 3], [4, 5, 6]],
    [[1, 2, 3], [4, 5, 6]],
    [[1, 2, 3], [4, 5, 6]]
])
print (a.shape)  # (4,2,3 )

图像截取

# 导入 OpenCV
import cv2
# 读取图片-与python文件相同目录
img = cv2.imread("test1.jpg", cv2.NORM_HAMMING)
cv2.imshow("test",img)
cv2.waitKey(-1)
# 销毁所有窗口
cv2.destroyAllWindows()
#表示 高取190到380像素的点,宽取340到410像素点
img = img[190:380,340:410]
cv2.imwrite("test11.jpg",img)
cv2.imshow("test",img)
cv2.waitKey(-1)
# 销毁所有窗口
cv2.destroyAllWindows()

运行效果

原始图片

Opencv+Python图像基本操作         截取后的图片=>  Opencv+Python图像基本操作

 绘图功能

OpenCV绘制不同的几何形状

包括cv.line(),cv.circle(),cv.rectangle(),cv.ellipse(),cv.putText()

Opencv+Python图像基本操作

画线

要绘制一条线,您需要传递线的开始和结束坐标。我们将创建一个黑色图像,并从左上角到右下角在其上绘制一条蓝线。

import numpy as np
import cv2 as cv
# 创建黑色的图像
img = np.zeros((512,512,3), np.uint8)
# 绘制一条厚度为5的蓝色对角线
cv.line(img,(0,0),(511,511),(255,0,0),5)
cv.imshow("test",img)
cv.waitKey(-1)
# 销毁所有窗口
cv.destroyAllWindows()

运行效果==>Opencv+Python图像基本操作

numpy.zeros(shape, dtype=float)

各个参数意义:
shape:创建的新数组的形状(维度)。
dtype:创建新数组的数据类型。
返回值:给定维度的全零数组。

创建白色画布    img = np.zeros((512,512,3), np.uint8)+255

画矩形

要绘制矩形,您需要矩形的左上角和右下角。这次,我们将在图像的右上角绘制一个绿色矩形

import numpy as np
import cv2 as cv
# 创建黑色的图像
img = np.zeros((512,512,3), np.uint8)+255
print(img)
cv.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv.imshow("test",img)
cv.waitKey(-1)
# 销毁所有窗口
cv.destroyAllWindows()

Opencv+Python图像基本操作

画圆圈

要绘制一个圆,需要其中心坐标和半径

import numpy as np
import cv2 as cv
# 创建黑色的图像
img = np.zeros((512,512,3), np.uint8)+255
print(img)
cv.circle(img,(447,63), 63, (0,0,255), -1)
cv.imshow("test",img)
cv.waitKey(-1)
# 销毁所有窗口
cv.destroyAllWindows()

 Opencv+Python图像基本操作

画椭圆

要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长度(长轴长度,短轴长度)。angle是椭圆沿逆时针方向旋转的角度。startAngle和endAngle表示从主轴沿顺时针方向测量的椭圆弧的开始和结束。即给出0和360给出完整的椭圆。

import numpy as np
import cv2 as cv
# 创建黑色的图像
img = np.zeros((512,512,3), np.uint8)
print(img)
cv.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
cv.imshow("test",img)
cv.waitKey(-1)
# 销毁所有窗口
cv.destroyAllWindows()

Opencv+Python图像基本操作

 画多边形

要绘制多边形,首先需要顶点的坐标。将这些点组成形状为ROWSx1x2的数组,其中ROWS是顶点数,并且其类型应为int32。在这里,我们绘制了一个带有四个顶点的黄色小多边形。

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv.polylines(img,[pts],True,(0,255,255))

注意 如果第三个参数为False,您将获得一条连接所有点的折线,而不是闭合形状。 cv.polylines()可用于绘制多条线。只需创建要绘制的所有线条的列表,然后将其传递给函数即可。所有线条将单独绘制。与为每条线调用**cv.line**相比,绘制一组线是一种更好,更快的方法。

Opencv+Python图像基本操作

向图像添加文本

要将文本放入图像中,需要指定以下内容。 - 您要写入的文字数据 - 您要放置它的位置坐标(即数据开始的左下角)。 - 字体类型(检查**cv.putText**文档以获取受支持的字体) - 字体比例(指定字体大小) - 常规的内容,例如颜色,厚度,线条类型等。为了获得更好的外观,建议使用lineType = cv.LINE_AA

import numpy as np
import cv2 as cv
# 创建黑色的图像
img = np.zeros((512,512,3), np.uint8)
print(img)
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv.LINE_AA)
cv.imshow("test",img)
cv.waitKey(-1)
# 销毁所有窗口
cv.destroyAllWindows()

 Opencv+Python图像基本操作文章来源地址https://www.toymoban.com/news/detail-444960.html

到了这里,关于Opencv+Python图像基本操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(89)
  • OpenCV基本操(IO操作,读取、显示、保存)

    参数: 要读取的图像 读取图像的方式: cv.IMREAD*COLOR :以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1 cv.IMREAD*GRAYSCALE :以灰度模式加载图像 标志: 0 cv.IMREAD_UNCHANGED :包括alpha通道(透明通道)的加载图像模式。 标志: -1 可以使用 1、0或者

    2024年02月10日
    浏览(68)
  • OpenCV基本操作——图像的基础操作

    注:opencv图像坐标系中,左上角是原点,y轴向下,x轴向右,单位像素点 有时需要在B,G,R通道图像上单独工作。在这种情况下,需要将BGR图像分割成单个通道。或者在其他情况下,可能需要将这些单独的通道合并到BGR图像 opencv中有150多种颜色空间转换方法。最广泛使用的转

    2024年02月13日
    浏览(96)
  • 【笔记】OpenCV图像基本操作

    目录 一、图像属性 1.1图像格式 1.2图像尺寸 1.3图像分辨率和通道 1.4图像直方图 1.5图像颜色空间 二、基本操作 2.1 图像读取 cv2.imread() 2.2 图像的显示 cv2.imshow() 2.3 图像的保存 cv2.imwrite() 2.4 用matplotlib显示图像 plt.imshow() 2.5 视频读取 cv2.VideoCapture() 2.6 图像截取、颜色通道提取

    2024年02月03日
    浏览(504)
  • opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)

    opencv常用 读视频函数 cv2.VideoCapture 、 cv2.VideoCapture.get 等,可以参考这里 opencv常用 写视频函数 cv2.VideoWriter 等可以参考这里 ,其中视频格式可以参考这里 videoCapture.read() 是按帧读取视频, ret,frame 是获 .read() 方法的两个返回值。其中 ret 是布尔值,如果读取帧是正确的则返回

    2023年04月08日
    浏览(100)
  • opencv学习(一)图像的基本操作

    cv2.IMREAD_COLOR:彩色图像 cv2.IMREAD_GRAYSCALE:灰度图像 cv2.imread()读取图片,当括号里面是 1 时,也就是替代了cv2.IMREAD_COLOR,得到 彩色图 。 cv2.imread()读取图片,当括号里面是 0 时,替代了cv2.IMREAD_GRAYSCALE,得到 灰度图 。 cv.inshow()函数为创建一个展示窗口,括号里面分别为 图片名字

    2024年02月05日
    浏览(121)
  • C# 使用OpenCV基本图像操作功能

    OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。C#在上位机开发中比较常用,有些项目需要在上位机上加入一些机器视觉相关的功能,在下面简单介绍了C#中使用OpenCV库的方法。 在管理NuGet包中,搜索OpenCvSharp4,安装

    2024年02月15日
    浏览(66)
  • OpenCV基本图像处理操作(十)——图像特征harris角点

    角点 角点是图像中的一个特征点,指的是两条边缘交叉的点,这样的点在图像中通常表示一个显著的几角。在计算机视觉和图像处理中,角点是重要的特征,因为它们通常是图像中信息丰富的区域,可以用于图像分析、对象识别、3D建模等多种应用。 角点的识别可以帮助在进

    2024年04月23日
    浏览(64)
  • 【Python_Opencv图像处理框架】图像基本操作+90bb5729-b33a-4e82-a0d9-faa3e5cbf621

    很幸运能选择Python语言进行学习,这是有关Opencv的图像处理的第一篇文章,讲解了有关图像处理的一些基础操作,作为初学者,我尽己所能,但仍会存在疏漏的地方,希望各位看官不吝指正❤️ 1. 计算机眼中的图像 计算机眼中的图像由一个个像素组成, 每个像素点的值在

    2023年04月18日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包