Opencv | 基于像素的基础操作

发布于:2024-04-12 ⋅ 阅读:(183) ⋅ 点赞:(0)

一. OpenCV 基于像素的基础操作

img = cv.imread("sky.png",-1)
print(img.size)  # 750000
print(img.shape)  # (500, 500, 3)
print(img.dtype)  # uint8:无符号的整数8位,即(0-255)

1 cv.item( ) 获取图像某个位置的像素值

	cv.item( ) 
	作用:
		一次只能查看一个通道某个点
	【注意】
		读取图像格式为BGR

2. cv. itemset( ) 修改图像某个位置的像素值

	cv. itemset( )
	作用:
		一次只能修改一个通道某个个点的像素值
	【注意】
		读取图像格式为BGR

3. cv.split( ) / cv.merge( ) 通道的分割与合并

	cv.split ( )  分割图像的通道
	cv.merge ( )  融合多个通道

4. cv.copyMakeBorder ( ) 添加边框

	cv.copyMakeBorder(src, top, bottom, left, right, borderType, dst=None, value=None)
	参数:
		src:输入的图片
		top/bottom/left/right:相应方向上的边框宽度
		borderType:
			要添加边框的类型,具体有:
				cv.BORDER_REPLICATE:使用最边界的像素值代替
				cv.BORDER_REFLECT:添加的边框像素将是边界元素的镜面反射
				cv.BORDER_REFLECT_101/cv.BORDER_DEFAULT:边界反射,边界像素不保留
				cv.BORDER_WRAP:看例子
				cv.BORDER_CONSTANT:添加的边界框像素值为常数(需要额外再给定一个参数)
		dst:输出图像;Python接口一般不用这个参数
		value:如果borderType为cv.BORDER_CONSTANT时,需要填充的常数值

5. cv.addWeighted ( ) 图像融合 / 权重和

	cv2.addWeighted(src1,alpha,src2.beta,gamma)
	参数:
		alpha:src1的权重
		beta:src2的权重
		gamma:偏置项
	非官方:
		加权和
	相当于:
		w1 * x1 + w2 * x2 + b
	注意:
		有偏置项

6. cv.add ( ) 加法操作

	两张图片相加,shape必须相同
	
	图片对应位置相加,如果相加后出现值大于255的情况,统一置为255
		解决方法:
		1. 相加图片权重相同
		2. 相加图片权重不同

7. cv.subtract ( ) 减法操作

	对应位置相减,如果小于0,统一置为0

8. cv.multiply ( ) 乘法操作

	对应位置相乘,如果大于255,统一置为255

9. cv.divide ( ) 除法操作

	对应位置相除,如果小于0,统一置为0

感谢阅读🌼
如果喜欢这篇文章,记得点赞👍和转发🔄哦!
有任何想法或问题,欢迎留言交流💬,我们下次见!
本文相关代码存放位置
    【Opencv基于像素值的计算

祝愉快🌟!