怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像

举报
月照银海似蛟龙 发表于 2022/09/27 11:14:29 2022/09/27
【摘要】 cv2.imread()读入图像 cv2.imread(parament1,parament2)parament1:要读入图像得路径,图片在路径内可提供图片名,不在必须提供完整路径parament2:读取这幅图片方式,取值范围-1~4,默认为1(彩色图像);0灰度图像;-1读入一幅图像,并且包括图像的 alpha 通道cv2.imshow()显示图像窗口会自动调整为图像大小。第一个参数是窗口...

cv2.imread()
读入图像 cv2.imread(parament1,parament2)
parament1:要读入图像得路径,图片在路径内可提供图片名,不在必须提供完整路径
parament2:读取这幅图片方式,取值范围-1~4,默认为1(彩色图像);0灰度图像;-1读入一幅图像,并且包括图像的 alpha 通道
在这里插入图片描述

cv2.imshow()
显示图像窗口会自动调整为图像大小。第一个参数是窗口的名字,第二个是要显示得图像。可以创建多个窗口,但是必须不同的名字。 仅此函数创建得窗口大小不可变
在显示前可以加入
cv2.namedWindow(‘image’, cv2.WINDOW_NORMAL)
窗口大小可以改变

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

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

cv2.imwrite()
保存图像
cv2.imwrite(‘messigray.png’,img)
第一个参数:要保存图像得地址及图像名称,前不加地址则保存在工程路径下。路径不要有中文。
第二个参数:要保存得图像

# -*- coding: utf-8 -*-  #注释中文文字
import numpy as np
import cv2

# 读取图片
img = cv2.imread('learn_image.jpg',cv2.IMREAD_GRAYSCALE)#灰度读取图像

# 以窗口显示图片
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img)

#键盘绑定
KeyInput = cv2.waitKey(0)

if KeyInput == ord('e'):
    cv2.destroyAllWindows()#关闭所有窗口

if KeyInput == ord('s'):
    cv2.imwrite('E:\learnOpenCV\save_file\saved_image1.jpg',img)#保存文件
    cv2.destroyAllWindows()#关闭所有窗口

该代码用到了上面所以函数,运行代码将先以灰度图读入图片,并以窗口显示,按键盘e键退出,按键盘s键,在指定路径下保存灰度图片。

绘图函数

画线
cv2.line(img,(0,0),(511,511),(255,0,0),5)
img 要画的图;(0,0)线得顶点1; (511,511)线得顶点2 ;(255,0,0)线得颜色 ;5 线得粗细

画矩形
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
img 要画的图;(384,0)矩形左上角点; (510,128)矩形右下角点 ;(0,255,0)线得颜色 ;3 线得粗细

画圆
cv2.circle(img,(447,63), 63, (0,0,255), -1)
img 要画的图;(447,63)中心点坐标; 63半径; (0,0,255)线得颜色; -1粗细(全填充)

写文字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,‘OpenCV’,(10,500), font,2,(255,255,255),1)
img 要画的图;,'OpenCV’要写得字只能英文;(10,500)你要绘制的位置;font字体类型;2字体的大小;(255,255,255)颜色;1粗细

执行下面代码,画图并保存图片

# -*- coding: utf-8 -*-  #注释中文文字
import numpy as np
import cv2
# 读取图片
img = cv2.imread('learn_image.jpg',cv2.IMREAD_COLOR)#读取图像 彩色
#绘图
cv2.line(img,(0,0),(511,511),(255,0,0),5) #画线
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)#画矩形
cv2.circle(img,(447,63), 63, (0,0,255),4)#画圆
#写字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font,2,(255,255,255),1)

# 以窗口显示图片
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
#键盘绑定
KeyInput = cv2.waitKey(0)
if KeyInput == ord('e'):
    cv2.destroyAllWindows()#关闭所有窗口
if KeyInput == ord('s'):
    cv2.imwrite('E:\learnOpenCV\save_file\saved_image1.jpg',img)#保存文件
   # cv2.destroyAllWindows()#关闭所有窗口
KeyInput = cv2.waitKey(0)

在这里插入图片描述

读图像像素
px=img[100,100]
px变量为图片像素100,100位置得BGR

可以获取图像的形状
img.shape 可以获取图像的形状。他的返回值是一个包含行数,列数,通道数的元组。
print (img.shape)
##(720L, 1280L, 3L)

图像的像素大小
img.size可以返回图像的像素大小
print img.size
##2764800

图像的数据类型
img.dtype 返回的是图像的数据类型
print img.dtype
##uint8

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。