CV1 计算机眼中的图像

一 基本读写图像文件

无论哪种格式,每一个像素都会有一个值,但不同格式表示像素的方式有所不同

  • numpy.zero()函数

调用该函数,可以通过二维NumPy数组来简单创建一个黑色的正方形图像

img=numpy.zeros((3,3),dtype=numpy.uint8)

控制台print一下,可得

[[0 0 0]
[0 0 0]
[0 0 0]]

该输出有两个[],说明该图像有两条通道,每一个像素都由一个8-bit整数表示,每个像素的范围是(0~255),其中,0表示最黑,255表示最白

  • cv2.cvtColor函数

使用该函数,可以把图像转化为BGR格式

img=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

控制台print一下,可得

[[[0 0 0] [0 0 0] [0 0 0]]

[[0 0 0] [0 0 0] [0 0 0]]

[[0 0 0] [0 0 0] [0 0 0]]]

现在,每个像素点都由一个三元数组,并且每一个二维数组/整形(integer)分别表示一个B/G/R通道

  • img.shape参数

可以通过shape属性来查看图像的结构,它会返回行和列,如果有2个及以上的通道,还会返回通道数

print(img.shape)

返回(414,500,3);414代表高【h】,500代表宽【w】,3是通道数【c】/或者说像素红绿蓝也行

  • 图像的读取及保存
image = cv2.imread('D:/opencv/imgurl/1.png')
cv2.imwrite('D:/opencv/imgurl/1.png',image)

这段代码,读取一张png图片,然后把它保存为jpg格式

  • 将图片转换成灰度图,并保存
grayImage = cv2.imread('D:/opencv/imgurl/1.png',cv2.IMREAD_GRAYSCALE)
cv2.imwrite('D:/opencv/imgurl/1.png',grayImage)
二 打开图像
import cv2
import numpy

img = cv2.imread('D:/opencv/imgurl/2.jpg')
cv2.imshow('p',img)
cv2.waitKey()
cv2.destroyAllWindows()
  • cv2.imread()函数
cv2.imread('D:/opencv/imgurl/1.png')

括号里面得参数是图片的路径

  • cv2.imshow()函数
cv2.imshow('openpng',img)

第一个参数是给窗口命名(命名只能是英文),第二个参数是已imread的图像

  • cv2.waitKey()函数
#等待时间,毫秒级别,0表示任意键终止
cv2.waitKey(1000)

等待键盘输入,函数WaitKey无限地等待一个键事件,如果没有键,则返回-1

触发这段代码,窗口消失

  • cv2.destroyAllWindow()函数
cv2.destroyAllWindows()

关掉所有窗口,销毁内存

三 查询图像的信息
print(type(img1)) #查询底层格式
print(img1.size) #计算像素点的个数
print(img1.dtype) #查询数据的类型
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落叶随峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值