目錄
二值圖像的像素訪問、修改
單個(gè)像素訪問、修改
?多個(gè)像素修改
彩色圖像(三維數(shù)組)?像素訪問、修改
BGR模式?像素訪問、修改
二值圖像的像素訪問、修改
單個(gè)像素訪問、修改
import numpy as np
import cv2 as cv
# 使用Numpy庫中的函數(shù)zeros()可以生成一個(gè)元素值都是0的數(shù)組
img = np.zeros((8,8), np.uint8)
print(img)
print("讀取像素點(diǎn)img[0,3]=",img[0,3])
img[0,3]=255
print("修改后Img=\n",img);
print("讀取修改后像素點(diǎn)img[0,3]=",img[0,3])
cv.imshow("test",img)
cv.waitKey(-1)
# 銷毀所有窗口
cv.destroyAllWindows()
打印結(jié)果:?
?多個(gè)像素修改
import numpy as np
import cv2 as cv
# 使用Numpy庫中的函數(shù)zeros()可以生成一個(gè)元素值都是0的數(shù)組
img = np.zeros((100,100), np.uint8)
#print(img)
#高度h 50到60 寬度w 40到45 的矩形區(qū)域
print("讀取像素點(diǎn)img[50:60,40:45]=\n",img[50:60,40:45])
img[50:60,40:45]=255
print("修改后Img=\n",img);
print("讀取修改后像素點(diǎn)img[50:60,40:45]=\n",img[50:60,40:45])
cv.imshow("test",img)
cv.waitKey(-1)
# 銷毀所有窗口
cv.destroyAllWindows()
運(yùn)行結(jié)果:?
彩色圖像(三維數(shù)組)?像素訪問、修改
BGR模式?像素訪問、修改
# 使用Numpy生成三維數(shù)組,用來觀察三個(gè)通道值的變化情況
# 結(jié)果是生成三張圖片,藍(lán)色,綠色,紅色
import numpy as np
import cv2
# -----------------------藍(lán)色通值道--------------
blue=np.zeros((300,300,3),dtype=np.uint8)
blue[:,:,0]=255
print("blue=\n",blue)
cv2.imshow("blue",blue)
# -----------------------綠色通值道--------------
green=np.zeros((300,300,3),dtype=np.uint8)
green[:,:,1]=255
print("green=\n",green)
cv2.imshow("green",green)
# -----------------------紅色通值道--------------
red=np.zeros((300,300,3),dtype=np.uint8)
red[:,:,2]=255
print("red=\n",red)
cv2.imshow("red",red)
cv2.waitKey(-1)
# 銷毀所有窗口
cv2.destroyAllWindows()
運(yùn)行效果:
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
cv2.imshow("img",img)
cv2.waitKey(-1)
# 銷毀所有窗口
cv2.destroyAllWindows()
?
?對于三維數(shù)組(BGR模式)
img[0,3]=255
表示 第1行(h)第3列(w)位置上的像素值,三個(gè)通道的像素值被修改為255
img[0,3]=[66,77,88]?
表示 第1行(h)第3列(w)位置上的像素值,三個(gè)通道BGR的像素值分別被修改為66,77,88
img[0,3,0]=255
表示 第1行(h)第3列(w)位置上的像素值,B通道的像素值分別被修改為255
img[0,3,1]=255
表示 第1行(h)第3列(w)位置上的像素值,G通道的像素值分別被修改為255
img[0,3,2]=255
表示 第1行(h)第3列(w)位置上的像素值,R通道的像素值分別被修改為255
色彩通道提取
?split() 函數(shù)可以進(jìn)行顏色的通道提取
import cv2 as cv
#解決中文亂碼
def zh_ch(string):
return string.encode('gbk').decode(errors='ignore')
img = cv.imread("test1.jpg")
#顏色的通道提取
b,g,r = cv.split(img)
print (r) #打印為二維數(shù)組
cv.imshow(zh_ch('原始圖像'),img)
imgBlue = cv.imread("test1.jpg")
imgGreen = cv.imread("test1.jpg")
imgRed = cv.imread("test1.jpg")
#只保留B通道的圖像
imgBlue[:,:,1] = 0
imgBlue[:,:,2] = 0
cv.imshow('Blue', imgBlue)
#只保留G通道的圖像
imgGreen[:,:,0] = 0
imgGreen[:,:,2] = 0
cv.imshow('Green', imgGreen)
#只保留R通道的圖像
imgRed[:,:,0] = 0
imgRed[:,:,1] = 0
cv.imshow('Red', imgRed)
cv.waitKey(-1)
cv.destroyAllWindows()
運(yùn)行效果:文章來源:http://www.zghlxwxcb.cn/news/detail-650727.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-650727.html
到了這里,關(guān)于Opencv+Python圖像像素處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!