OpenCV--图像的运算

图像的运算

代码和笔记

import cv2
import numpy as np


"""
图像的运算
"""

# 读取图片
cat1 = cv2.imread('./img/cat.jpeg')
cat2 = cv2.imread('./img/cat.jpeg')

"""
加减乘除
"""
# 加法(有点杂交的感觉) 图片长宽和通道数相同
# 如果不一样使用ndarray的切片方法如cat[0:360,:499]
# 加法规则 两个图对应位置的元素相加,如果超过255,则变为255
# 也可以和数字相加, 超出255则 %256
new_img = cv2.add(cat1, cat2)
cv2.imshow('new_img', new_img)

# 减法 结果小于0,全部为0,变黑
new_img1 = cv2.subtract(cat1, cat2)
cv2.imshow('new_img1', new_img1)
# 乘法multipy 除divide类似

"""
图像融合(图片做线性运算)0.3和0.7是两张需要融合的图片各自的权重,-100是偏置(明暗程度)
"""
new_img2 = cv2.addWeighted(cat1, 0.3, cat2, 0.7, -100)
cv2.imshow('new_img2', new_img2)

"""
与&(bitwise_and) 异或^(bitwise_) 非~(bitwise_not)(0-255,即0反过来为255,也就是相当于255减去原来的值) 运算,OpenCV中对应位置对应进行运算
"""

cv2.waitKey(0)
cv2.destroyAllWindows()

根据提供的引用内容,错误提示中的信息表明在使用OpenCV进行图像处理时遇到了问题。具体来说, - 引用中的错误提示是因为图片的尺寸大小不满足要求导致的,要求图片的宽度和高度都大于0。 - 引用中的错误提示是因为输入参数的尺寸大小不匹配导致的,要求进行计算的两个数组具有相同的尺寸和通道数。 - 引用中提供了一个解决办法的示例代码,其中导入了OpenCV库,读取了两张图片,调整了图片的大小,然后使用add函数实现了图像融合,最后通过imshow函数显示图像。 如果你想进行闭运算的操作,你可以参考以下示例代码: ```python import cv2 as cv import numpy as np # 读取图像 image = cv.imread("your_image_path", 1) # 图像处理操作 kernel = np.ones((5,5), np.uint8) closing = cv.morphologyEx(image, cv.MORPH_CLOSE, kernel) # 显示结果 cv.imshow("Closing", closing) cv.waitKey(0) ``` 在这个示例代码中,首先使用cv.imread函数读取了一张图像,然后定义了一个5x5的矩形结构元素(kernel)。接下来,使用cv.morphologyEx函数进行闭运算操作,其中MORPH_CLOSE参数表示进行闭运算。最后,使用cv.imshow函数显示结果图像。 希望这个回答对你有帮助!123 #### 引用[.reference_title] - *1* *2* *3* [解决opencv中算术运算报错: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\...](https://blog.csdn.net/m0_62026333/article/details/127638999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉后才知酒浓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值