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

程序运行结果:
在这里插入图片描述

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