【opencv3 学习记录】第一章 基础操作

一:读入图像

使用函数:cv2.imread(const string&filename,int flags=1)

例:

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

mat:简单介绍,用于保存图像以及其他矩阵数据的数据结构,默认情况下尺寸为0 

此代码表示,从工程目录下,把一幅名为jieni.jpg的jpg类型图像载入mat类型的img变量中。

1.const string&filename :字符串形式的文件路径

2.int flags=1:载入标示,指定一个加载图像的类型。共有三种类型,用1(默认参数)、0、-1来表示

其中:1——cv2.imread_color:读入彩色图像,图像透明度会被忽略

           0——cv2.imread_grayscale:以灰度模式读入图像

          -1——cv2.imread_unchanged :读入一幅图像,并且包括图像的alpha通道

注:1.阿尔法通道(α Channel或Alpha Channel)是指一张图片透明半透明度。例如:一个使用每个像素16比特存储的位图,对于图形中的每一个像素而言,可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,最后一个比特是阿尔法。在这种情况下,它要么表示透明要么不是,因为阿尔法比特只有0或1两种不同表示的可能性。又如一个使用32个比特存储的位图,每8个比特表示红绿蓝,和阿尔法通道。在这种情况下,就不光可以表示透明还是不透明,阿尔法通道还可以表示256级的半透明度,因为阿尔法通道有8个比特可以有256种不同的数据表示可能性。

2.图像通道一幅完整的图像,红色绿色蓝色三个通道缺一不可。即使图像中看起来没有蓝色,只能说蓝色光的亮度均为0或者各像素值的红色和绿色通道不全为0,但不能说没有蓝色通道存在。

二:显示图像

1.函数:cv2.imshow(const string&winname,mat)

2.参数说明:

    (1)const string&winname——需要显示的窗口标示名称。

    (2)mat——需要显示图像的名称

例:

image = cv2.imread("F:\picture\jienitest.jpg") #读取某张图片
cv2.imshow("Image",image) #将图片展示
cv2.waitKey(0) #等待再按下任何键后执行关闭窗口
cv2.destroyAllWindows()

 3.键盘绑定函数:cv2.waitkey()

        需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 a 是否 按下,这个后面我们会接着讨论。

4.函数cv2.destroyAllWindows()

      可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用cv2.destroyWindow(),在括号内输入你想删除的窗口名。

三:创建窗口

1.函数:cv2.namedWindow(winname,[flags])

2.参数说明:

(1)winname——用作窗口标识符的窗口名称

(2)[flags]——窗口标示,可以填如下几种值

  • cv2.WINDOW_NORMAL,用户可以改变窗口的大小(没有限制)
  • cv2.WINDOW_AUTOSIZE,窗口可以自动调整以适应所显示的图像,用户不能手动调整

 (3)namedWindow作用:当需要显示窗口前就需要用到窗口名时,如创建一个作为图像和进度条的容器窗口。如果具有相同名称的窗口已经存在,则函数不起作用。

四:输出图像到文件中:imwrite()函数

1.函数:cv2.imwrite(filename,img,[params])

2.参数:

(1)filename——文件名

(2)img(mat形式)——图像或者要保存的图像

(3)params——一般不需要填写

例:

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

五:练习

加载一个灰度图,显示图片,按下’s’键保存后退出,或者按下 ESC 键退出不保存。

import cv2
image=cv2.imread("F:\picture\jienitest.jpg",0)
cv2.imshow("Image",image)
k=cv2.waitKey(0)
if k==27:
    cv2.destroyWindow("Image")
elif k==115:
    cv2.imwrite("F:\picture\jienitestgray.jpg",image)
    cv2.destroyWindow("Image")

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值