4、opencv图像基本操作和算术运算16个应用案例

1、图像加法运算(用numpy)

对像素值取模(大于255的减去255用余值作为像素)
通过将数组的数值类型定义为 dtype= np.uint8,可以保证数组值的范围在[0,255] 之间

import numpy as np
img1 = np.random.randint(0, 256, size=[3, 3], dtype=np.uint8)#选取0,256的随机数,组成3*3的矩阵,指定的数据类型dtype保证数值范围,自动取模
img2 = np.random.randint(0, 256, size=[3, 3], dtype=np.uint8)
print("img1=\n", img1)#打印随机矩阵
print("img2=\n", img2)
print("img1+img2=\n", img1+img2)#两个矩阵相加

2、图像加法运算(用opencv)

与1的区别:使用函数 cv2.add()对像素值a 和像素值b 进行求和运算时,会得到像素值对应图像的饱和值(最大值255)。

import numpy as np
import cv2
img1 = np.random.randint(0, 256, size=[3, 3], dtype=np.uint8)
img2 = np.random.randint(0, 256, size=[3, 3], dtype=np.uint8)
print("img1=\n", img1)
print("img2=\n", img2)
img3=cv2.add(img1, img2)
print("cv2.add(img1,img2)=\n", img3)

3、图像的加法运算——图像实例

用numpy和opencv比较图像的现象
numpy取模,opencv部分像素值达到饱和变亮

import cv2
a = cv2.imread("lena.bmp", 0)
b = a
result1 = a+b
result2 = cv2.add(a, b)
cv2.imshow("original", a)#最原始的图像
cv2.imshow("result1", result1)#两个相同图象的像素值相加
cv2.imshow("result2", result2)#add函数求和,得到对应图像的饱和值
cv2.waitKey()
cv2.destroyAllWindows()

4、图像的加权和(融合)

函数 cv2.addWeighted,用来实现图像的加权和(混合、融合)
np.ones()函数返回给定形状和数据类型的新数组,其中元素的值设置为1

import cv2
import numpy as np
img1 = np.ones((3, 4), dtype=np.uint8)*100#生成一个 3×4 大小的、元素数值都是 100 的二维数组,对应一个灰度图像 imgl
img2 = np.ones((3, 4), dtype=np.uint8)*10#生成一个 3×4 大小的、元素数值都是 10 的二维数组,对应一个灰度图像 img2
gamma = 3 #将调节亮度参数 gamma 的值设置为3
img3 = cv2.addWeighted(img1, 0.6, img2, 5, gamma) #计算“img1×0.6+img2×5+3”的混合值
print(img3)

5、两幅图像按权重融合

使用函数cv2.addWeighted() 对两幅图像进行加权混合,观察处理结果

import cv2
a=cv2.imread("boat.bmp")
b=cv2.imread("lena.bmp")
result=cv2.addWeighted(a, 0.6, b, 0.4, 0)
cv2.imshow("boat", a)
cv2.imshow("lena", b)
cv2.imshow("result", result)#图像boat和图像lean加权混合结果图像
cv2.waitKey()
cv2.destroyAllWindows()

3、扣取ROI图像混合在另外一幅图中

使用函数 cv2.addWeighted() 将一幅图像的ROI 混合在另外一幅图像内

import cv2
lena = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值