opencv掩膜和水印提取

一、掩码和提取

1、导入图片flower.jpeg
2、使用两种方法将图中的玫瑰花提取出来,具体要求如下:
(1)使用split + 设置单通道掩码 + merge 方法提取
(2)将掩模设置为BGR模式进行直接提取

备注:玫瑰花所在区域在图中ROI为【150:1790, 1290:3200】

import cv2
import os           
import numpy as np

dir_path = os.path.dirname(__file__)
flower_path = os.path.join(dir_path, "pic", "flower.jpeg")

flower = cv2.imread(flower_path, 1)

# method one
b, g, r = cv2.split(flower)

# 设置单通道掩码
mask = np.zeros(flower[:,:,0].shape, dtype=np.uint8)
mask[150:1790, 1290:3200] = 255

# 与白色进行按位与运算得到本身
b_and_mask = cv2.bitwise_and(b, mask)
g_and_mask = cv2.bitwise_and(g, mask)
r_and_mask = cv2.bitwise_and(r, mask)

# 进行合并通道
result_merged = cv2.merge([b_and_mask, g_and_mask, r_and_mask])
# cv2.namedWindow("result_merged", cv2.WINDOW_FREERATIO)
# cv2.imshow("result_merged", result_merged)
# cv2.waitKey()
# cv2.destroyAllWindows()

# method two
# 将掩膜设置为BGR模式
mask = np.zeros_like(flower)
mask[150:1790, 1290:3200, :] = 255

flower_and_mask = cv2.bitwise_and(flower, mask)
# cv2.namedWindow("flower_and_mask", cv2.WINDOW_FREERATIO)
# cv2.imshow("flower_and_mask", flower_and_mask)
# cv2.waitKey()
# cv2.destroyAllWindows()

save_path = os.path.join(dir_path, "result", "result1.jpg")

cv2.imwrite(save_path, flower_and_mask)

二、水印提取

1、导入图片test.png
2、提取该图片中的水印信息

import cv2
import os
import numpy as np

dir_path = os.path.dirname(__file__)
test_path = os.path.join(dir_path, "pic", "test.png")

test = cv2.imread(test_path, -1)

# 生成全1矩阵
t1 = np.ones_like(test)

#
water_mark = cv2.bitwise_and(test, t1)

mask = water_mark[:, :] > 0
water_mark[mask] = 255
# cv2.imshow("water_mark", water_mark)
# cv2.waitKey()
# cv2.destroyAllWindows()

save_path = os.path.join(dir_path, "result", "result2.jpg")

cv2.imwrite(save_path, water_mark)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值