13.Opencv位操作
非操作
cv2.bitwise_not(image)
- 对单一图片进行操作
- 相当于255减去当前的像素值
- 用np.hstack进行对比
- cv2.imshow(“window”,np.hstack((image.new_image)))
与操作
cv2.bitwise_and(image1,image2)
- 对两张图片进行操作
- 两个图片的大小保持一致
- 对应数字转化为2进制 与运算之后 再转化为整数,两个都是1才是1
- 越与越小,所以图像会变黑
或操作
cv2.bitwise_or(image1,image2)
- 与 与操作相似,只不过计算的方式不同 两个只要有一个是1就是1
- 越或越大,图像整体会变白
异或操作
cv2.bitwise_xor(image1,image2)
- 与或操作相似
- 操作符为^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Opencv学习
@File :Opencv位操作.py
@IDE :PyCharm
@Author :咋
@Date :2023/1/12 20:54
"""
import cv2
import numpy as np
test = cv2.imread("image.jpg")
image = cv2.imread("Handsome.jpg")
# 图片分割
test = test[400:1000,500:1200] # 这里写死了,实际可以定义一个函数去判断,然后去修改值
image = image[400:1000,500:1200] # 这里写死了,实际可以定义一个函数去判断,然后去修改值
# 非操作
not_image = cv2.bitwise_not(image)
cv2.imshow("not_image",np.hstack((image,not_image)))
# 与操作
and_image = cv2.bitwise_and(test,image)
# cv2.imshow("and_image",and_image)
# 或操作
or_image = cv2.bitwise_or(test,image)
# cv2.imshow("or_image",or_image)
# 异或操作
xor_image = cv2.bitwise_xor(test,image)
# cv2.imshow("xor_image",xor_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咋的个人博客!