02:像素處理

二值圖像及灰度圖像

1、前提說明:在openCV中,最小的數據類型是無符號的8位數,二值圖像是經過處理得到的
2、圖像可以理解爲一個矩陣,一個openCV灰度圖像就是一個二維數組,可以使用表達式訪問其像素值,例如可以使用[0,0]訪問圖像第0行第0列像素點
3、舉例:使用Numpy生成一個元素都是0的二維數組,並使用數組的索引對其進行訪問、修改

import cv2
import numpy as np

img = np.zeros((8,8), dtype=np.uint8)
print('img=\n', img)
cv2.imshow('one', img)
print('讀取像素點img[0,3]=', img[0,3])
img[0,3] = 255
print('修改後img=\n', img)
print('讀取修改後像素點img[0,3]=', img[0,3])
cv2.imshow('two', img)
cv2.waitKey()
cv2.destroyAllWindows()

運行結果
控制檯輸出:
在這裏插入圖片描述
舉例:讀取一個灰度圖像,編寫代碼如下:

import cv2

img = cv2.imread('1.jpg', cv2.IMREAD_REDUCED_GRAYSCALE_2)
cv2.imshow('before', img)
for i in range(10, 100):
    for j in range(80,100):
        img[i, j] = 255
cv2.imshow('after', img)
cv2.waitKey()
cv2.destroyAllWindows()

運行結果如下:
在這裏插入圖片描述

彩色圖像

可以使用img[0,0,0]訪問第0行第0列元素的B通道像素值
可以使用img[0,0,1]訪問第0行第0列元素的G通道像素值
可以使用img[0,0,2]訪問第0行第0列元素的R通道像素值
舉例

import cv2
import numpy as np

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()

程序運行結果:
在這裏插入圖片描述

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