直接上代码,代码行基本上都会有注释,非常简单,一看就懂。
import random
import cv2 as cv
import numpy as np
"""
图像的基本表示方法:1、二值图像 2、灰度图像 3、彩色图像
1、二值图像:
仅包含黑(0)白(1)两种颜色的图片
2、灰度图像:
从黑色到白色(0-255)的进化色
3、彩色图片:
RGB三色空间(红绿蓝)。三个通道同时表示一种颜色。例如:纯黑色RGB值:(0, 0, 0)
OpenCV中通道顺序是BGR。
三者可进行类型转化
一、
使用numpy.array访问像素
二、
感兴趣区域
三、
通道的操作
"""
def pixel_processing_01():
"""像素处理
1、读取一个二值图像
"""
# 生成一个8*8 的元素值为 0 的数组,数值类型:np.uint8
img = np.zeros((8, 8), dtype=np.uint8)
# 打印这个8*8 矩阵像素值
print("img = \n", img)
cv.namedWindow("one", cv.WINDOW_NORMAL)
cv.imshow("one", img)
# 利用img[x,y] 读取某个位置的像素点值
print("读取像素点【0,3】:", img[0, 3])
# 直接赋值,覆盖原像素点值
img[0, 3] = 255
cv.namedWindow("two", cv.WINDOW_NORMAL)
cv.imshow("two", img)
# 查看像素点值
print("修改后像素点【0,3】:", img[0, 3])
cv.waitKey()
cv.destroyWindow("lesson")
def pixel_processing_02():
# 2、灰度图像
# 读取 显示图像
img2 = cv.imread("111.jpg", 0)
# 原图
cv.namedWindow("three", cv.WINDOW_NORMAL)
cv.imshow("three", img2)
# 随机将元素位置【i, j】的元素值修改为:你想要的值
for i in range(10, 100):
for j in range(10, 100):
img2[i, j] = 255
# 修改后图片
cv.namedWindow("three1", cv.WINDOW_NORMAL)
cv.imshow("three1", img2)
cv.waitKey()
cv.destroyWindow("three")
def pixel_processing_03():
# 2、灰度图像
# 读取 显示图像
img2 = cv.imread("111.jpg", -1)
# 原图
cv.namedWindow("three", cv.WINDOW_NORMAL)
cv.imshow("three", img2)
# 随机将