OpenCV-Python 图片黑白反转
时间: 2024-01-02 08:19:26 浏览: 119
可以使用 OpenCV-Python 中的 cv2.bitwise_not() 函数来实现图片黑白反转。具体实现代码如下:
```python
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 将图片转为灰度图
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 反转黑白颜色
inverted_img = cv2.bitwise_not(gray_img)
# 显示图片
cv2.imshow('inverted image', inverted_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关问题
黑白反转opencv
要实现黑白反转,可以使用OpenCV库。以下是一个使用OpenCV实现黑白反转的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg', 1)
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 反转图像
dst = 255 - gray
# 显示反转后的图像
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码读取名为`image.jpg`的图像,将其转换为灰度图像,并通过计算最大灰度值减去原图像的灰度值,得到反转后的图像。最后使用`cv2.imshow`函数显示反转后的图像。按下任意键关闭图像窗口。<em>1</em><em>2</em>
#### 引用[.reference_title]
- *1* [黑白图片颜色反转并保存](https://blog.csdn.net/qq_41264055/article/details/121504639)[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]
- *2* [利用opencv将图片黑白色反转并显示、保存](https://blog.csdn.net/m0_64170094/article/details/125474142)[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 ]
python opencv 将图片非感兴趣区域黑白化
您可以通过以下步骤将非感兴趣区域变为黑白色:
1. 加载图像并创建一个掩码,用于标识感兴趣区域和非感兴趣区域。
```python
import cv2
img = cv2.imread('image.jpg')
mask = np.zeros(img.shape[:2], np.uint8)
roi_corners = np.array([[x1,y1],[x2,y2],[x3,y3],[x4,y4]], dtype=np.int32)
ignore_mask_color = (255,) * channel_count
cv2.fillPoly(mask, roi_corners, ignore_mask_color)
```
其中,`x1, y1, x2, y2, x3, y3, x4, y4` 是感兴趣区域的四个顶点坐标,`channel_count` 表示图像通道数量。
2. 将非感兴趣区域的像素值设为黑色。
```python
masked_img = cv2.bitwise_and(img, img, mask=mask)
gray_img = cv2.cvtColor(masked_img, cv2.COLOR_BGR2GRAY)
```
这里使用了 `cv2.bitwise_and()` 函数来将掩码应用到原始图像上,将非感兴趣区域的像素值设为零。然后使用 `cv2.cvtColor()` 函数将结果转换为灰度图像。
3. 将感兴趣区域的像素值设为白色。
```python
mask_inv = cv2.bitwise_not(mask)
white_img = np.full(img.shape, 255, dtype=np.uint8)
white_img = cv2.bitwise_and(white_img, white_img, mask=mask_inv)
result_img = cv2.bitwise_or(gray_img, white_img)
```
这里使用了 `cv2.bitwise_not()` 函数来反转掩码,将感兴趣区域的像素值设为白色。然后创建一个全白色的图像,使用 `cv2.bitwise_and()` 函数将掩码应用到图像上,将非感兴趣区域的像素值设为零。最后使用 `cv2.bitwise_or()` 函数将两个图像合并,得到最终结果。
完整代码如下:
```python
import cv2
import numpy as np
# Load image
img = cv2.imread('image.jpg')
# Create mask
mask = np.zeros(img.shape[:2], np.uint8)
roi_corners = np.array([[x1,y1],[x2,y2],[x3,y3],[x4,y4]], dtype=np.int32)
ignore_mask_color = (255,) * channel_count
cv2.fillPoly(mask, roi_corners, ignore_mask_color)
# Apply mask to image
masked_img = cv2.bitwise_and(img, img, mask=mask)
# Convert to grayscale
gray_img = cv2.cvtColor(masked_img, cv2.COLOR_BGR2GRAY)
# Make non-masked region white
mask_inv = cv2.bitwise_not(mask)
white_img = np.full(img.shape, 255, dtype=np.uint8)
white_img = cv2.bitwise_and(white_img, white_img, mask=mask_inv)
# Combine masked region and white region
result_img = cv2.bitwise_or(gray_img, white_img)
# Display result
cv2.imshow('Result', result_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)