基于python的opencv像素处理(Numpy库的使用)

像素是图像构成的基本单位,像素处理是图像处理的基本操作,像素值在python中以数组的方式存在,所有我们要使用Numpy库进行像素的辅助操作。

  1. 首先我们用Numpy生成一个三维数组,观察彩色图三通道值的变化
import numpy as np
import cv2
img=np.zeros((300,300,3),dtype=np.uint8)
img[:,0:100,0]=255
img[:,100:200,1]=255
img[:,200:300,2]=255
print("img=/n",img)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()  

在这里插入图片描述
在这里,我们通过操作数组显示出三种通道的纯色。

2.生产一张灰度噪点图

import numpy as np
import cv2
img=np.random.randint(0,256,size=[400,400],dtype=np.uint8)
cv2.imshow("demo",img)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
通过random的randint函数生产0到255随机数,建立一个二维数组(无三通道为灰度图),产生亮度不同的像素点。

3.通过数组实现图像通道的拆分

import numpy as np
import cv2
import matplotlib.pyplot as plt
img1=cv2.imread('d:/jm.jpg')
img1[:,:,0]=0
img1[:,:,1]=0
img2=cv2.imread('d:/jm.jpg')
img2[:,:,1]=0
img2[:,:,2]=0
img3=cv2.imread('d:/jm.jpg')
img3[:,:,0]=0
img3[:,:,2]=0
plt.subplot(1, 3,1), plt.imshow(img1, 'gray')
plt.subplot(1, 3,2), plt.imshow(img2, 'gray')
plt.subplot(1, 3,3), plt.imshow(img3, 'gray')
plt.show()

在这里插入图片描述
和一同理

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