opencvGUI特性--图片

1 图片

1.1 读取图片

使用函数:cv2.imread(filename,flags)读取图像。【按照BGR读取】

参数为flags,告诉我们如何读取这个图像

  • 当flags>0时,cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数
  • 当flags=0时,cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
  • 当flags<0时,cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道
# 读取图片,以灰度模式打开
img1=cv2.imread("d:\\777.png",cv2.IMREAD_GRAYSCALE)
# 读取图片,以彩色模式打开
img2=cv2.imread("d:\\777.png",cv2.IMREAD_COLOR)
# 读取图片,以图片原模式打开,(包含阿尔法通道)
img3=cv2.imread("d:\\grayscale.png",cv2.IMREAD_UNCHANGED)

1.2 显示图像

使用函数 cv2.imshow(winname,mat)显示图像。mat就是所指图像

在显示图像时会先使用一个窗口,在窗口实现图片的显示,窗口会自动调整为图像大小。winname是窗口的名字,第二个参数才是我们的图像。

使用函数cv2.namedWindow(winname,flags)创建窗口

winame为所创建窗口的窗口名,flags决定窗口大小是否可以手动自调整

cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)等价cv2.namedWindow('image')默认,系统自调整
cv2.namedWindow('image', cv2.WINDOW_NORMAL)可以手动调整大小
# 创建自调整窗口,默认
cv2.namedWindow("text",cv2.WINDOW_AUTOSIZE)
# 创建手动调整大小的窗口
cv2.namedWindow("text2",cv2.WINDOW_NORMAL)
# 显示图片
cv2.imshow("text",img)
cv2.imshow("text2",img)

1.3 保存图像

使用函数 cv2.imwrite(filename,images)来保存一个图像。

首先需要一个文件名,filename就是文件名[加上路径],之后才是你要保存的图像,也就是images。

cv2.imwrite("d:\\gray.png",img1)

1.4 补充

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

1.5 总结

import  cv2
#加载一个灰度照片
img = cv2.imread("d:\\log.png",0)
#显示读入的图片
cv2.imshow('image',img)
#图像等待键盘处理
k = cv2.waitKey(0)&0xFF
if k==27:#esc键
    # 退出窗口
    cv2.destroyAllWindows()
elif k == ord('s'):#s键
    #保存图片
    cv2.imwrite('d:\\messigray.png',img)
    #退出窗口
    cv2.destroyAllWindows()

1.6 使用matplotlib显示图片

import cv2
import matplotlib.pyplot as  plt
img = cv2.imread("d:\\log.png",0)
#使用plt绘制图片,以灰度绘制,cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。
plt.imshow(img, cmap= 'gray')
#横坐标,纵坐标为空
plt.xticks([])
plt.yticks([])
plt.show()

注意:

xticks(ticks, [labels], kwargs)

ticks:数组类型,用于设置X轴刻度间隔
[labels]:数组类型,用于设置每个间隔的显示标签
kwargs:用于设置标签字体倾斜度和颜色等外观属性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值