OpenCV_Python3(2)-------图片基本操作:读取,显示,保存


# cv2.imread(filepath,flags)         #读取图片
#   filepath:
#       待读取图片的完整路径
#       Example:'C:\\Users\\帅ZR帅\\Desktop\\1.jpg'
#   flages  :
#       {cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED}
#       等效{1,0,-1}
#       cv2.IMREAD_COLOR:默认参数,读彩色图片,不包括alpha通道
#       cv2.IMREAD_GRAYSCALE:读灰度图片
#       cv2.IMREAD_UNCHANGED:读完整图片,包括alpha通道
#       Example:cv2.imread('C:\\Users\\帅ZR帅\\Desktop\\1.jpg',cv2.IMREAD_COLOR)  等效于 cv2.imread('C:\\Users\\帅ZR帅\\Desktop\\1.jpg',1)

# cv2.imshow(windowname,image)       #在窗口中显示图片
#   windowname:
#       窗口名
#       Example: 'Window_1'
#   image:
#       要显示的图像 类型为numpy.ndarray (多维数组)
#       Example: image

# cv2.namedWindow(windowname,flags)             #创建窗口
#   windowname:
#       待创建的窗口名
#       Example: 'Window_1'
#   flags:
#       {cv2.WINDOW_NORMAL,cv2.WINDOW_AUTOSIZE}
#       等效{0,1}
#       cv2.WINDOW_NORMAL:  窗口大小可调
#       cv2.WINDOW_AUTOSIZE:窗口大小不可调
#       Example: cv2.namedWindow('window_1',cv2.WINDOW_NORMAL) 等效于 cv2.namedWindow('window_1',0)

# cv2.destoryWindow(windowname)     #销毁指定窗口 回收内存
#   windowname:
#       待销毁的窗口名
#       Example: 'window_1'

# cv2.destroyAllWindows()            #销毁所有窗口 回收内存
#   无参数

# image.shape                        #image图像的基本参数:宽,高,通道数
#   Example: data = image.shape

# cv2.imwrite(filepath,image)        #保存图像
#   filepath:
#       保存完整路径
#       Example: 'C:\\Users\\帅ZR帅\\Desktop\\2.jpg'
#   image:
#       需要保存的图像 类型为numpy.ndarray (多维数组)




题目:    ​读取图片1.jpg 并将其显示在窗口window_1中 然后将其保存为2.jpg


解题思路:
# 想要对一副图像进行处理
# 首先我们需要用读取函数(cv2.imread)将原图从文件中提取出来,
# 处理完之后我们要用显示函数(cv2.imshow)来观察处理效果,
# 但是想要显示一副图像我们需要一个容器,所以要用窗口创建函数(cv2.namedWindow)来创建一个容器,
# 最终我们需要用保存函数(cv2.imwrite)来保存处理后的图像,




#代码详解#
 

​
import cv2
import numpy as np

image = cv2.imread('1.jpg',)#以默认模式(cv2.IMREAD_COLOR)读取当前文件夹下的1.jpg 图像, 并将#其以N维数组的形式存入 image

print(type(image))          #打印 image的类型

print(image)                #打印 image


cv2.namedWindow('window_1',1)#创建一个 名字为window_1 大小可变的窗口

#这样我们就获得了一个 名字为window_1 大小可变的窗口
#之后显示图片的时候就可以直接 填入这个窗口名 来调用这个窗口
#同时需要记住 当一个窗口不再使用时 需要将其销毁 以便回收内存

cv2.imshow('window_1',image)  #在窗口中显示图片
# 这里我们直接 传入 之前读取的图片image 以及创建的窗口window_1

# 值得一提
# 即使之前没有用 函数 cv2.nameWindow() 函数 来创建一个窗口 也可以直接调用imshow()函数
# imshow()函数会为你以默认参数创建一个窗口大小不可调的窗口
# 但是之前如果没用 函数 cv2.imread 来读取图片并将其保存在多维数组中 则会报错 : name #'image' #is not defined

cv2.waitKey()  

cv2.destroyWindow('window_1')  #销毁之前创建的 名字为window_1的窗口

#也可以使用  cv2.destroyAllWindows() 来销毁所有的窗口

cv2.imwrite('2.jpg',image)#,在当前文件夹中创建文件2.jpg,并将多维数组image 写入其中


 

你可能感兴趣的:(OpenCV_Python3,python,pycharm,opencv)