python按位与怎么算_【AI基础】python:openCV——图像算术运算(2):按位运算

本文介绍了如何利用Python的OpenCV库进行图像二值化和按位运算,以提取图像的特定区域并进行图像融合。首先,通过threshold函数对图像进行二值化处理,然后利用中值滤波减少噪声。接着,通过bitwise_not和bitwise_and操作创建掩膜并实现目标图像与背景图像的融合。最终,展示了不同步骤的图像效果,包括掩膜、反色掩膜及融合后的图像。
摘要由CSDN通过智能技术生成

按位运算

按位操作有:AND,OR,NOT,XOR 等。当我们提取图像的 一部分,选择非矩形 ROI 时这些操作会很有用,常用于Logo 投射。

本节操作思路:

通过 threshold 函数将图片 固定阈值二值化,

定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。

一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。

import cv2

import numpy as np

img = cv2.imread('1.jpg')

img2 = cv2.imread('2c.jpg')

rows,cols,channels = img2.shape

roi = img[0:rows, 0:cols]

GrayImage=cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)

# 中值滤波

GrayImage= cv2.medianBlur(GrayImage,5)

# mask_bin 是黑白掩膜

ret,mask_bin = cv2.threshold(GrayImage,127,255,cv2.THRESH_BINARY)

#mask_inv 是反色黑白掩膜

mask_inv = cv2.bitwise_not(mask)

# 黑白掩膜 和 大图切割区域 取和

img1_bg = cv2.bitwise_and(roi,roi,mask = mask_bin)

#反色黑白掩膜 和 logo 取和

img2_fg = cv2.bitwise_and(img2,img2,mask = mask_inv)

dst = cv2.add(img1_bg,img2_fg)

img[0:rows, 0:cols ] = dst

cv2.imshow('GrayImage',mask_bin)

cv2.waitKey(0)

cv2.destroyAllWindows()

为便于理解,贴出过程图

mask_bin 效果图:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

mask_inv 效果图:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

img1_bg 和 img2_fg 效果图:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

最终效果图:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值