OpenCV - 2 opencv的基础操作

opencv的基础操作

  • 图片的读写及显示
    • 1. 图像读取
    • 2. 图像写入
    • 3. 图像显示
      • cv显示
      • matplotlib显示
    • 4. 将彩色图像读取为灰度图像
    • 5. 图像的维度
  • 定义一个显示图像的函数
  • 完整代码

图片的读写及显示

1. 图像读取

img = cv.imread('dog.jpg')
print(type(img))
print(img.shape)
  
# 
# (768, 1024, 3)

2. 图像写入

cv.imwrite('dog-w.jpg', img)

3. 图像显示

cv显示

cv.imshow('dog', img)
cv.waitKey(0)
cv.destroyAllWindows()

matplotlib显示

plt.imshow(img)
plt.show()  # 这张图像显示会出现和原图像不一致的问题,这是因为原图像的颜色通道顺序是RGB,cv读取图片是BGR通道

# 修改图像的通道顺序
img2 = cv.cvtColor(img, cv.COLOR_BGR2RGB)  # BGR转RGB
plt.imshow(img2)
plt.show()

4. 将彩色图像读取为灰度图像

# 将彩色图像读取为灰度图像
img3 = cv.imread('dog.jpg', 0)
print(type(img3))
print(img3.shape)
cv.imshow('dog', img3)
cv.waitKey(0)
cv.destroyAllWindows()

# 
# (768, 1024)
# 彩色图像是三维矩阵,而灰度图像是二维矩阵

plt.imshow(img3)  # 将图像当做是热力图的形式读取
plt.show()

plt.imshow(img3, cmap='gray')  # 将热力图图像转为灰度图像 cmap:colour map
plt.show()

5. 图像的维度

print(img.ndim)

# 3

定义一个显示图像的函数

def show(img):
    if img.ndim == 2:
        plt.imshow(img, cmap='gray')
    else:
        plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
    plt.show()

dog = cv.imread('dog.jpg')
show(dog)

dog_gray = cv.imread('dog.jpg', 0)
show(dog_gray)

完整代码

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np

# 图片读写及显示
img = cv.imread('dog.jpg')
print(type(img))
print(img.shape)  #  (768, 1024, 3)

# 写入图片
cv.imwrite('dog-w.jpg', img)

cv.imshow('dog', img)
cv.waitKey(0)
cv.destroyAllWindows()

plt.imshow(img)
plt.show()  # 这张图像显示会出现和原图像不一致的问题,这是因为原图像的颜色通道顺序是RGB,cv读取图片是BGR通道


# 修改图像的通道顺序
img2 = cv.cvtColor(img, cv.COLOR_BGR2RGB)  # BGR转RGB
plt.imshow(img2)
plt.show()

# 将彩色图像读取为灰度图像
img3 = cv.imread('dog.jpg', 0)
cv.imshow('dog', img3)
cv.waitKey(0)
cv.destroyAllWindows()

plt.imshow(img3)  # 将图像当做是热力图的形式读取
plt.show()

plt.imshow(img3, cmap='gray')  # 将热力图图像转为灰度图像
plt.show()


# 图像的维度
print(img.ndim)

def show(img):
    if img.ndim == 2:
        plt.imshow(img, cmap='gray')
    else:
        plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
    plt.show()

dog = cv.imread('dog.jpg')
show(dog)

dog_gray = cv.imread('dog.jpg', 0)
show(dog_gray)

你可能感兴趣的:(Python,OpenCV,opencv)