OpenCV图像处理入门:图片的修改与运算

目录

一、图片的修改

1、图片打码

2、图片组合

二、图片的运算

1、加法运算

(1)+号运算

(1)cv2.add()运算

2、加权运算


本文使用的图片如下

1.jpg

2.jpg

一、图片的修改

1、图片打码

a = cv2.imread(r'./1.jpg')#原图片输入                                          
a[100:200,200:300] = np.random.randint(0,256,(100,100,3))           
cv2.imshow('misaike',a)#misaike为输出图片的框名                                             
cv2.waitKey(100000)#100000为输出框的存在时间                                                
cv2.destroyAllWindows()                                             

行2:[100:200,200:300]图片打码区域,(100,100,3)两个100分别为打码区域的长宽,如示例中即为200-100与300-200的结果,3为维度不变,0,256为打码颜色范围,0为黑256为白。

上述代码运行结果如下

2、图片组合

a=cv2.imread('1.jpg')                       
b=cv2.imread('2.jpg')                      
b[0:150,0:150]=a[200:350,250:400]           
cv2.imshow('masaike',b)                     
cv2.waitKey(100000)                         
cv2.destroyAllWindows()                     

行2:将b中的相应部分用a中的对应部分进行替代。注意和打码类似,前后的长宽要对应

上述代码运行结果如下

二、图片的运算

1、加法运算

(1)+号运算

a = cv2.imread('2.jpg')
b=a+10
c=a-10
cv2.imshow('tupian1',b)
cv2.waitKey(10000)
cv2.imshow('tupian1',c)
cv2.waitKey(10000)
cv2.destroyAllWindows()
cv2.destroyAllWindows()

在 +号运算中,导致像素数值小于0或大于255的结果会使数值重新计算,如0-1为255,255+1为0。

上述代码运行结果如下

可以明显的发现黑白反转

(1)cv2.add()运算

a = cv2.imread('qq.jpg')
b=cv2.imread('2.jpg')
c=cv2.add(a,b)
cv2.imshow('a+b',c)
cv2.waitKey(100000)
cv2.destroyAllWindows()

 在cv2.add()运算中,导致像素数值大于255的结果会保持在255

上述代码运行结果如下

可以明显的发现图片为白色的区域(像素值为255)很大

2、加权运算

a=cv2.imread('1.jpg')
b=cv2.resize(cv2.imread('2.jpg'),(400,400))
c=cv2.addWeighted(a,0.5,b,0.5,10)
cv2.imshow('add',c )
cv2.waitKey(10000)
cv2.destroyAllWindows()

加权运算在计算两幅图像的像素值之和时,会将每幅图像的权重考虑进来,因此得到的结果会更接近与两图按权重叠加

上述代码运行结果如下

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值