1. 程式人生 > >opencv影象處理(一):讀取圖片,裁剪圖片

opencv影象處理(一):讀取圖片,裁剪圖片

1.利用opencv讀取圖片:

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 14:59
# @Author  : xhh
# @Desc    : 讀取圖片
# @File    : opencv_imreadImg.py
# @Software: PyCharm
import cv2

img = cv2.imread("../tupian/green.png")

cv2.imshow("green.png",img)
cv2.waitKey(0)

結果:

2. 對圖片進行裁剪

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 14:59
# @Author  : xhh
# @Desc    : 讀取圖片
# @File    : opencv_imreadImg.py
# @Software: PyCharm
import cv2

img = cv2.imread("../tupian/green.png")

height = len(img)
width = len(img[0])
print('圖片大小%d, %d'%(width, height))
# 對圖片進行裁剪
img2 = img[0:60, 0:100]
# 進行儲存處理後的圖片
cv2.imwrite('../captcha/tupian/green.jpg',img2)

#  裁剪後的圖片大小
height=len(img2)
width = len(img2[0])
print('圖片大小%d, %d'%(width, height))
print('圖片size',img2.size)
print('圖片dtype',img2.dtype)


cv2.imshow("green.png",img)
cv2.imshow("green.jpg",img2)

cv2.waitKey(0)

裁剪後的結果:

3. 利用matplotlib進行圖片展示

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 14:59
# @Author  : xhh
# @Desc    : 讀取圖片,並利用matplotlib
# @File    : opencv_imreadImg.py
# @Software: PyCharm
import cv2
import matplotlib.pyplot as plt

img = cv2.imread("../tupian/green.png")

plt.imshow(img)
plt.show()

結果(失去了原有的色彩):

4.修改圖片的顏色通道

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 14:59
# @Author  : xhh
# @Desc    : 讀取圖片,並利用matplotlib
# @File    : opencv_imreadImg.py
# @Software: PyCharm
import cv2
import matplotlib.pyplot as plt

img = cv2.imread("../tupian/green.png")
# 修改圖片通道
(r, g, b) = cv2.split(img)
img = cv2.merge([b, g, r])

plt.imshow(img)
plt.show()

結果:

5. 利用plt和cv2讀取圖片:

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 14:59
# @Author  : xhh
# @Desc    : 讀取圖片,並利用matplotlib
# @File    : opencv_imreadImg.py
# @Software: PyCharm

import cv2
import matplotlib.pyplot as plt

img1 = cv2.imread('../tupian/green.png')
img2 = plt.imread('../tupian/green.png')

plt.subplot(121)
plt.imshow(img1)

plt.subplot(122)
plt.imshow(img2)

plt.show()

最終結果還是顏色通道的不同

6.matplotlib將圖片轉化為灰度圖

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 15:32
# @Author  : xhh
# @Desc    : 利用 matplotlib顯示灰度圖
# @File    : plt_grayImg.py
# @Software: PyCharm
import matplotlib.pyplot as plt
import matplotlib.cm as cm

img = plt.imread('../tupian/green.png')
# 將圖片轉化為單通道
img = img[:, :, 0]

plt.subplot(121)
plt.imshow(img)

plt.subplot(122)
# plt.colorbar()
plt.imshow(img, cmap=cm.get_cmap('winter'))

plt.show()