目录
0 前言
使用软件:Anaconda + Pycharm + VScode
OpenCV环境:
- python=3.10
- cv2.version = 4.8.0
- numpy.version = 1.22.3
1 图像处理入门基础
图像的种类:
- 二值化图像
- 灰度图
- RGB彩色图像(OpenCV中是BGR格式)
RGB转灰度 >>> 模式识别、人脸识别
2 像素处理
返回值 = 图像(位置参数)
用灰度图像
2.1 示例
import cv2
img=cv2.imread("H:\\PycharmProjects\\OpenCV\\A1_Photo\\photo\\goutou.png",cv2.IMREAD_UNCHANGED)#导入图片
cv2.imshow("demo",img)#显示图片,名称叫demo
cv2.waitKey(0)
cv2.destroyAllWindows()
print(img[10,10])#读取BGR格式数值
img[10,10]=[255,255,255]#三个通道值一起修改
print(img[100,100])#读取BGR格式数值
# img[10,10,1]=55#单个通道值修改
# print(img[10,10])#读取BGR格式数值
2.2 单个通道
还可以修改或读取不同的单个通道的数值
2.2 块修改
块修改
import cv2
import cv2
img=cv2.imread("H:\\PycharmProjects\\OpenCV\\A1_Photo\\photo\\goutou.png",cv2.IMREAD_UNCHANGED)#导入图片
cv2.imshow("original",img)#显示图片,名称叫demo
print(img[100,100])#读取BGR格式数值
img[150:400,250:450]=[0,255,255]#[100:200,100:200]这个范围内的像素修改成白色
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
一次性获得三个通道的数值
对某个区域进行设置像素
#2023年11月26日15:47:19
import cv2
img = cv2.imread("F:\\PycharmProjects\\OpenCV\\A1_Photo_Input\\tsy.jpg",cv2.IMREAD_UNCHANGED)#导入图片
cv2.imshow("original",img)#显示图片,名称叫demo
print(img[100,100])#读取BGR格式数值
img[150:240,250:350]=[90,25,255]#[100:200,100:200]这个范围内的像素修改成白色
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果不错!
3 使用numpy进行像素处理
- 读取像素
- 修改像素值
3.1 读取像素
- 灰度图像,返回灰度值。
范例
p = img.item(88,123)
print(p)
3.2 修改像素
3.3 BGR图像
BGR图像需要指定图像的通道
#2023年11月26日19:52:53
import cv2
import numpy as np
#BGR图像
img = cv2.imread("H:\\PycharmProjects\\OpenCV\\A1_Photo\\photo\\goutou.png", cv2.IMREAD_UNCHANGED)
print(img.item(100,100,0))
img.itemset((100,100,0), 255) #设置
print(img.item(100,100,0))
cv2.imshow("original",img)#显示图片,名称叫demo
cv2.waitKey(0)
cv2.destroyAllWindows()
放到下一批文章
4 获取图像属性
4.1 形状
4.2 像素数目
4.3 图像类型