第一章 OpenCV的基本操作

1.图像的基本操作

  1-1 读取图像

    1.API

cv.imread()

参数:

  • (要读取的图像 )
  • (读取方法的标志)

(1) cv.IMREAD*COLOR: (默认参数)以彩色模式加载图像,任何乳香的透明度都将被忽                  略。

(0) cv.IMREAD*GRAYSCALE: 以灰度模式加载图像

(-1) cv.IMREAD_UNCHANGED: 包括alpha通道的加载图像模式

可以使用1、0或者-1来代替上面三个标志

1-2 显示图像

1.API

cv.imshow()

参数:

  • (显示图像的后窗口名称,以字符串类型表示)
  • (要加载的图像)

注意:在调用显示图像的API后,要调用 cv.waitKey() 给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来

另外我们也可以使用matplotib对图像进行展示。

参考代码

import cv2 as cv   #(导入OopenCV库)

img = cv.imread('111.jpg',1)        #读取图片

cv.imshow('1111',img)      #显示图像

cv.waitKey(0)         #延时函数用于界面保留

1-3 保存图像

1.API

cv.imwrite()

参数:

(保存的位置 也可以重命名)(要保存的图像)

注意:在调用显示图像的API后,要调用 cv.waitKey() 给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来

另外我们也可以使用matplotib对图像进行展示。

参考代码

cv.imwrite("333.png",img)

1-4 总结

import matplotlib.pyplot as plt
import cv2 as cv   #(导入OopenCV库)

img = cv.imread('111.jpg',1)        #读取图片


plt.imshow(img[:,:,::-1])   #显示图片
plt.show()
cv.imwrite("333.png",img)

2 绘制几何图片

2.1绘制直线

API

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

参数:

  • img:要绘制直线的图像
  • start end :直线的终点和起点
  • color:线条的颜色
  • Thickness:线条的宽度

2.2绘制圆形

API

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

参数:

  • img:要绘制的图像
  • centerpoint:圆心
  • r :半径
  • thickness:线条宽度,为-1时生成闭图案并填充颜色

2.3 绘制矩形

API

cv.rectangle(img,leftupper,righdown,color,thickness)

参数:

  • img:           要绘制的矩形图像
  • leftupper       矩形的上角坐标
  • righdown:   矩形的下角坐标
  • color:          线条的颜色
  • thickness:   线条宽度

2.4向图中添加文字

API

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

参数:

  • img:       图像
  • text:      要写入的文字
  • station: 文本摆放位置 左下角
  • font:      字体类型
  • Fontsize:字体大小

总结:

import cv2 as cv
#导入 OpenCV 库,并使用别名 cv,OpenCV 是一个用于计算机视觉任务的强大库,包括图像和视频处理等。

import numpy as np
#导入 NumPy 库,别名 np。NumPy 提供了高效的多维数组对象和用于处理这些数组的各种函数,在图像处理中常用于表示图像数据和进行数值计算。

import matplotlib.pyplot as plt
#导入 Matplotlib 的 pyplot 模块,别名 plt。Matplotlib 是一个用于绘制图表和可视化数据的库,这里将用于显示图像。

# 原本是生成一个黑色的 512x512 的三通道图像,这里注释掉,因为后面会读取一张图片
# img = np.zeros((512, 512, 3), np.uint8)  #生成一个图片

# 读取名为'111.jpg'的图片,第二个参数 1 表示以彩色模式读取
img = cv.imread('111.jpg', 1)

# 在读取的图像上绘制一条从坐标点 (0,0) 到 (512,512) 的蓝色直线,线宽为 5
cv.line(img, (0, 0), (512, 512), (255, 0, 0), 5)

# 在图像上绘制一个绿色矩形,左上角坐标为 (384,0),右下角坐标为 (510,128),线宽为 3
cv.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)

# 在图像上绘制一个红色圆形,圆心坐标为 (447,63),半径为 63,-1 表示填充圆形内部
cv.circle(img, (447, 63), 63, (0, 0, 255), -1)

# 设置字体为 HERSHEY_SIMPLEX
font = cv.FONT_HERSHEY_SIMPLEX

# 在图像上绘制文本
cv.putText(img, "OpenCV!",(10,500),font,4,(255,255,255),2,cv.LINE_AA)

# 使用 Matplotlib 显示图像,将图像的通道顺序反转,因为 OpenCV 使用 BGR 顺序,而 Matplotlib 期望 RGB 顺序
plt.imshow(img[:,:,::-1])
plt.show()
#cv.imshow("111",img)
cv.waitKey(0)

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

3.1读取像素

API

返回值 = 图(位置参数)

blue = img[100,100,0] #读取像素蓝色

我们可以通过行列的坐标值获取该像素点的像素值。对于BGR图像,它返回一个蓝,绿,红的数组。对于灰度图像,仅仅返回相应的强度值。使用相同的方法对像素值进行修改。

3.2修改像素

灰度图的修改直接赋值

img[22,22]=255

彩色图的修改

img[]

                         未完待续。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值