OpenCV学习笔记1——图像读取与信息提取

目录

一、计算机眼中的图像

二、通过代码对图像进行操作

1.图像的读取

2.图像的显示

三、将图像读取为灰度图像 

四、保存图像


一、计算机眼中的图像

在计算机中,图像被视为一个高度×宽度的像素矩阵,每一个矩阵内存放着该像素的色彩信息。计算机中大多采用RGB颜色标准,即通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。

部分颜色对应RGB值:

白色:rgb(255,255,255)

黑色:rgb(0,0,0)

红色:rgb(255,0,0)

绿色:rgb(0,255,0)

蓝色:rgb(0,0,255)

青色:rgb(0,255,255)

紫色:rgb(255,0,255)

二、通过代码对图像进行操作

1.图像的读取

import cv2

img = cv2.imread('1.jpg')
print(img)                                                                                                                                                                                                                                        

我们将cv2导入文件中,使用“imread”函数读取存储在指定路径中的图像,并将读取后的图像存储在名为“img”的变量中。之后我们将img打印出来,可以看到如下结果:

我们可以看到,img输出的是嵌套的三个数组:第一个中括号表示这是一个图像里的内容,第二个中括号代表一行的所有像素,第三个中括号代表单个像素的RGB值。

import cv2

img = cv2.imread('1.jpg')
print(img.shape)

运行后得到如下结果:

 这表明,变量“img”高1600像素,宽1072像素,每个像素有三个用来表示颜色的RGB值。

注意:1)图片路径中不能有中文,否则会报错

           2)如果图片文件与.py文件在一个文件夹里,则只需输入图片名字,如果不在,则需要输入相对路径

           3)图片的后缀格式要打对,否则无法打开

           4)中括号里显示的三个数字并不是按R、G、B的顺序,而是B、G、R

2.图像的显示

import cv2

img = cv2.imread('1.jpg')

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

这里,我们使用“imread”函数来显示图像,它需要两个参数,第一个字符串将是显示图片窗口的名称,第二个是要显示的图像。

“waitKey”函数是等待一段时间。当然这里也可以填零,填零的意思是这里会一直等下去,除非用户按下键盘上任意一个按键再执行下一行。

“destroyAllWindows”函数,字面意思就是摧毁所创建的窗口,关闭显示的图像。

这段代码编译运行之后,我们将得到一个名为“image”的图像窗口:

此时按下任意按键即可关闭该窗口。 

三、将图像读取为灰度图像 

 灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度。在之后的opencv实战中,我们会使用到灰度图,所以需要将图片读取为灰度图像。

import cv2

img = cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)
print(img)

这里,代码与上面的唯一的不同就是在“imread”函数里多给了一个参数:“cv2.IMREAD_GRAYSCALE”,这表明我们将会把图片读取为灰度图。

运行得到如下结果:

可以看到,第一个和第二个花括号还在,表达的意思也没有变,而方才第三个中括号括住的三个RGB值则被替换成了一个表示像素亮度的灰度值。

import cv2

img = cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)
print(img,shape)

这时我们再显示shape,可以看到结果中只包含图像的长与宽,而没有第三个数字了。

import cv2

img = cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

如果我们这时再显示图像,就能看到灰白的图片:

四、保存图像

import cv2

img = cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)

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

使用“imwrite”函数,即可在代码所在文件夹保存指定的图像。这里的文件类型也是可以改变的。

这样,我们就把刚才读取的灰度图以png格式保存了下来。 

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风痕天际

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

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

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

打赏作者

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

抵扣说明:

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

余额充值