Python图像处理--OpenCV基本操作

引言:因为我用的pycharm,所以要先引入cv2库,若引入不成功就引入opencv-python

一、读入图像

使用函数cv2.imread(filepath,flags)读入一副图

  •      filepath:要读入图片的完整路径
    • flags:读入图片的标志 
      • cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道 也可以以1指定
      • cv2.IMREAD_GRAYSCALE:读入灰度图片 也可以以0指定
      • cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
import cv2
#1的话读取全彩图片 0读取灰度图片即黑白图片
img = cv2.imread('king.jpg', 1)
img1 = cv2.imread('king.jpg', 0)

 

二、显示图像

使用函数cv2.imshow(wname,img)显示图像,第一个参数是显示图像的窗口的名字,第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小

tips:要注意的是需要让程序暂停,否则图片会一闪而过,你不会观察到图片:

import cv2
img = cv2.imread('king.jpg',1)
'''通过窗口展示图片 第一个参数为窗口名 第二个为读取的图片变量'''
cv2.imshow('image',img)
'''暂停cv2模块 不然图片窗口一瞬间即就会消失 观察不到'''
cv2.waitKey(0)

三、保存图像

使用函数cv2.imwrite(file,img,num)保存一个图像。第一个参数是要保存的文件名,第二个参数是要保存的图像。可选的第三个参数,为写入图片的质量。

import cv2
'''在写入图片是时也可以设置写入的新图片的质量'''
'''
对于JPG格式的图片来说:IMWRITE_JPEG_QUALITY的取值范围为0-100 这是写入jpg格式 数值越小 压缩比越高 图片失真严重
下面来看写入png格式的图片
对于png格式来说参数为IMWRITE_PNG_COMPRESSION 取值范围为0-50
但他的数值越小 压缩比越低 图片质量写入较高 与写入jpg格式恰好相反
'''
img = cv2.imread('king.jpg',1)
cv2.imwrite('king1.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,0])
img = cv2.imread('king.jpg',1)
cv2.imwrite('king2.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])

四、操作像素给图片画线:

import cv2
'''读取图片'''
img = cv2.imread("king.jpg", 1)
(b, g, r) = img[100, 100]
print(b, g, r)
'''我们通过操作像素来在图片中画一条竖直红色的线'''
for i in range(1, 100):
    img[10+i, 110] = (0, 0, 255)#改变图片原来的像素
cv2.imshow('image', img)#打开一个名为image的窗口来显示操作后图片
'''暂停程序 以方便来观看图片 不然会一闪而过'''
cv2.waitKey(0)

五、读入一张图片,并加入文本内容:

import cv2
img = cv2.imread('king.jpg', 1)    # 打开文件
font = cv2.FONT_HERSHEY_DUPLEX  # 设置字体
# 图片对象、文本、像素、字体、字体大小、颜色、字体粗细
imgzi = cv2.putText(img, "SKH", (100, 164), font, 3.5, (0, 0, 255), 2,)
cv2.imshow('skh', imgzi)
cv2.waitKey(0)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章