OpenCV
读一张图片
cv2.imread()
- cv2.IMREAD_COLOR : Loads a color image. Any transparency of image will be neglected. It is the default flag.
- cv2.IMREAD_GRAYSCALE : Loads image in grayscale mode
- cv2.IMREAD_UNCHANGED : Loads image as such including alpha channel
上面三个参数可以分别用 1, 0, -1 来代替.
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('messi5.jpg',0)
展示一张图片
cv2.imshow()
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey() If 0 is passed, it waits indefinitely for a key stroke.
cv2.destroyAllWindows() If you want to destroy any specific window, use the function cv2.destroyWindow() where you pass the exact window name as the argument.
cv2.namedWindow() 允许你创建一个窗口,然后将图像加载到该窗口中。你可以指定是否可以调整窗口,默认参数为 cv2.window_autosize, 当指定参数为 cv2.window_normalo,则可以调整窗口大小。
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
写一张图片
cv2.imwrite()
cv2.imwrite('test.png', img)
总结
下面的程序以灰度级加载图像,显示图像,如果按“s”将保存图像并退出,如果按Esc键,则直接退出而不保存图像。
import numpy as np
import cv2
img = cv2.imread('messi5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27: # wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
cv2.imwrite('messigray.png',img)
cv2.destroyAllWindows()
Matplotlib
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('messi5.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()
opencv加载的彩色图像处于BGR模式。但Matplotlib以RGB模式显示。因此,如果使用opencv读取图像,则颜色图像将无法在matplotlib中正确显示。一个相应的解决方法如下:
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('messi4.jpg')
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
plt.subplot(121);plt.imshow(img) # expects distorted color
plt.subplot(122);plt.imshow(img2) # expect true color
plt.show()
cv2.imshow('bgr image',img) # expects true color
cv2.imshow('rgb image',img2) # expects distorted color
cv2.waitKey(0)
cv2.destroyAllWindows()












网友评论