opencv学习--
1、三通道彩色图转化为灰度图
代码
import numpy as py
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('images/001_0002.jpg', 1);
# cv2.imshow('imgae',img);
shape= img.shape
if shape[2]==3 or shape[2]==4:
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY);
cv2.imshow('gray_img',gray_img)
cv2.waitKey(0);
cv2.destroyAllWindows()
结果图
2、BGR转化而为RGB
代码
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('images/001_0002.jpg',1)
shape = img.shape
if shape[2]==3 or shape[2]==4:
BRGtRGBimg_numpy_method = img[:,:,::-1]
plt.subplot(1,2,1)
plt.imshow(img)
plt.subplot(1,2,2)
plt.imshow(BRGtRGBimg_numpy_method)
plt.show()
plt.imshow(原图)如左边结果所示,经过img[:,:,::-1]转化后(BGR转化而为RGB)如结果右图所示
直方图绘制
##代码部分
import cv2
from matplotlib import pyplot as plt
img = cv2.imread("images/1.jpg")
# gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(img,cmap=plt.cm.gray)
hist = cv2.calcHist([img],[0],None,[256],[0,256])
plt.figure()
plt.title("gray hist")
plt.xlabel("Bins")
plt.ylabel("# of piexl")
plt.plot(hist)
plt.xlim([0,256])
plt.show()
结果图
三通道直方图绘制
代码区
步骤:
1、读取三通道彩色图像
2、三通道颜色创建列表(bgr是因为在opencv中的顺序;plt中是rgb的顺序)
3、在每个通道中分别创建一个直方图cv2.calcHist()
import cv2
from matplotlib import pyplot as plt
img = cv2.imread("images/2.jpg",1)
cv2.imshow("color_img",img)
color =('b','g','r')
for i,color in enumerate(color):
hist = cv2.calcHist([img],[i],None,[256],[0,256])
plt.title("gun")
plt.xlabel("X-Bins")
plt.ylabel("Y-num")
plt.plot(hist,color=color)
plt.show()
cv2.waitKey(0)
cv2.destroyAllWindows()