当前位置: 首页 > article >正文

OpenCV(python)从入门到精通——运算操作

  • 加法减法操作
import cv2 as cv
import numpy as np

x = np.uint8([250])
y = np.uint8([10])

x_1 = np.uint8([10])
y_1 = np.uint8([20])

# 加法,相加最大只能为255
print(cv.add(x,y))

# 减法,相互减最小值只能为0
print(cv.subtract(x_1,y_1))
  • 图像加法
    在这里插入图片描述
import cv2 as cv
import numpy as np

img1 = cv.imread("./images/1.jpg")

img2 = cv.imread("./images/1_test.jpg")


img = cv.add(img1,img2)

cv.imshow("pic",img)
cv.waitKey(0)

在这里插入图片描述

  • 图像权重相加,因为我使用的都是同一张图片
import cv2 as cv
import numpy as np

img1 = cv.imread("./images/1.jpg")

img2 = cv.imread("./images/1_test.jpg")


# img = cv.add(img1,img2)
img = cv.addWeighted(img1,0.5,img2,0.8,gamma=0)
cv.imshow("pic",img)
cv.waitKey(0)

在这里插入图片描述

  • 按位与操作
import cv2 as cv
import numpy as np

img1 = cv.imread("./images/1.jpg")

img2 = cv.imread("./images/1_test.jpg")


# img = cv.add(img1,img2)
# img = cv.addWeighted(img1,0.5,img2,0.8,gamma=0)
rows,cols,channels = img2.shape
roi = img1[0:rows,0:cols]
img2gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
ret,mask = cv.threshold(img2gray,10,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
mask_inv = cv.bitwise_not(mask)

img1_bg = cv.bitwise_and(roi,roi,mask=mask_inv)
cv.imshow("img1_bg",img1_bg)
cv.waitKey(0)



在这里插入图片描述

  • 按位取反操作
import cv2 as cv
import numpy as np

img1 = cv.imread("./images/1.jpg")

img2 = cv.imread("./images/1_test.jpg")


# img = cv.add(img1,img2)
# img = cv.addWeighted(img1,0.5,img2,0.8,gamma=0)
rows,cols,channels = img2.shape
roi = img1[0:rows,0:cols]
img2gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
ret,mask = cv.threshold(img2gray,10,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
mask_inv = cv.bitwise_not(mask)

img1_bg = cv.bitwise_not(roi,roi,mask=mask_inv)
cv.imshow("img1_bg",img1_bg)
cv.waitKey(0)


在这里插入图片描述

  • 按位或

import cv2 as cv
import numpy as np

img1 = cv.imread("./images/1.jpg")

img2 = cv.imread("./images/1_test.jpg")


# img = cv.add(img1,img2)
# img = cv.addWeighted(img1,0.5,img2,0.8,gamma=0)
rows,cols,channels = img2.shape
roi = img1[0:rows,0:cols]
img2gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
ret,mask = cv.threshold(img2gray,10,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
cv.imshow("img3",roi)
cv.imshow("img1",mask)
mask_inv = cv.bitwise_not(mask)

img1_bg = cv.bitwise_or(roi,roi,mask=mask_inv)
cv.imshow("img1_bg",img1_bg)
cv.waitKey(0)




在这里插入图片描述

  • 按位异或
import cv2 as cv
import numpy as np

img1 = cv.imread("./images/1.jpg")

img2 = cv.imread("./images/1_test.jpg")


# img = cv.add(img1,img2)
# img = cv.addWeighted(img1,0.5,img2,0.8,gamma=0)
rows,cols,channels = img2.shape
roi = img1[0:rows,0:cols]
img2gray = cv.cvtColor(img2,cv.COLOR_BGR2GRAY)
ret,mask = cv.threshold(img2gray,10,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
cv.imshow("img3",roi)
cv.imshow("img1",mask)
mask_inv = cv.bitwise_xor(mask,mask)

img1_bg = cv.bitwise_or(roi,roi,mask=mask_inv)
cv.imshow("img1_bg",img1_bg)
cv.waitKey(0)



http://www.kler.cn/a/443364.html

相关文章:

  • C语言初阶习题【25】strcpy的模拟实现
  • API架构风格的深度解析与选择策略:SOAP、REST、GraphQL与RPC
  • mysql -> 达梦数据迁移(mbp大小写问题兼容)
  • 深入学习RabbitMQ的Direct Exchange(直连交换机)
  • 洛谷:P1540 [NOIP2010 提高组] 机器翻译
  • 解决HBuilderX报错:未安装内置终端插件,是否下载?或使用外部命令行打开。
  • C++ 只出现一次的数字 - 力扣(LeetCode)
  • Golang的向前兼容性和toolchain规则,Go1.21.0
  • SpringBoot3整合FastJSON2如何配置configureMessageConverters
  • RabbitMQ的工作模型
  • DataOps驱动数据集成创新:Apache DolphinScheduler SeaTunnel on Amazon Web Services
  • Spring Boot 中异常日志记录的最佳实践:实时示例
  • .NET Runtime 是什么?
  • DNS协议 是什么?说说DNS 完整的查询过程?
  • 矩阵在资产收益(Asset Returns)中的应用:以资产回报矩阵为例(中英双语)
  • 使用 Django 和 AWS 实现自动同步 ECR 信息
  • 《算法ZUC》题目
  • C++算法第十一天
  • Scala快速入门+示例
  • html <a>设置发送邮件链接、打电话链接 <a href=“mailto:></a> <a href=“tel:></a>
  • 网页核心页面设计(第10章)
  • C语言:排序
  • uniapp v-tabs修改了几项功能,根据自己需求自己改
  • Java原生实现代码沙箱的实现
  • 中阳科技:从量化交易到智能金融的创新实践
  • go 中使用redis 基础用法