opencv python在灰度图加上半透明矩形框
时间: 2023-11-25 14:51:18 浏览: 140
以下是在灰度图上加上半透明矩形框的示例代码:
```python
import cv2
import numpy as np
# 读取灰度图
img = cv2.imread('gray_image.jpg', cv2.IMREAD_GRAYSCALE)
# 将灰度图转换为彩色图
img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
# 定义半透明颜色
color = (98, 9, 11)
alpha = 0.5
# 画矩形框
zeros = np.zeros_like(img)
for label in dict['shape']:
points = np.array(label['points'], dtype=np.int32)
cv2.fillPoly(zeros, [points], color=color)
mask = cv2.addWeighted(zeros, alpha, img, 1 - alpha, 0)
# 显示图像
cv2.imshow('image', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('transparent_rect.jpg', mask)
```
相关问题
opencv python在灰度图上画半透明矩形框
以下是使用OpenCV在灰度图上画半透明矩形框的示例代码:
```python
import cv2
import numpy as np
# 读取灰度图像
img = cv2.imread('gray_image.jpg', 0)
# 将灰度图像转换为彩色图像
img_color = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
# 创建一个与图像大小相同的全零图像
zeros = np.zeros_like(img_color, dtype=np.uint8)
# 定义矩形框的坐标
x, y, w, h = 100, 100, 200, 150
# 在全零图像上绘制矩形框
cv2.rectangle(zeros, (x, y), (x + w, y + h), (98, 9, 11), -1)
# 将全零图像与原图像进行加和
result = cv2.addWeighted(img_color, 0.5, zeros, 0.5, 0)
# 显示结果图像
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
opencv python 添加透明条
在OpenCV Python中,如果你想在图像上添加一个透明条(通常用于制作带有边框的透明区域),你可以使用`cv2.addWeighted()`函数,结合颜色掩码来实现。这个函数允许你对两个或更多的图像进行线性组合,其中一个图像可以是全透明的(即只包含Alpha通道,没有颜色信息)。
以下是一个简单的示例,如何在一个带有透明度的矩形区域添加一个半透明的边界:
```python
import cv2
import numpy as np
# 假设你有一个基础图像叫做base_image
base_image = ... # 你的OpenCV图像实例
# 创建一个黑色背景的矩形掩码,大小与base_image相同,但只有Alpha通道(透明度)
mask = np.zeros_like(base_image, dtype=np.uint8)
mask[:, :, 3] = 128 # 设置透明度为半透明(0-255)
# 定义透明条的颜色和位置
color = (255, 255, 255) # 白色
top_left = (0, 0) # 透明条的左上角坐标
width_height = (base_image.shape, 10) # 透明条的高度和宽度
# 在掩码上绘制透明条
cv2.rectangle(mask, top_left, (top_left + width_height, top_left + width_height), color, -1)
# 使用addWeighted()将透明条添加到基础图像上
result = cv2.addWeighted(base_image, 1, mask, 0.5, 0) # 透明度(0.5表示半透明)
# 显示结果
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关问题--
1. OpenCV的`cv2.addWeighted()`函数有哪些参数?
2. 如何用OpenCV创建一个只有Alpha通道的图像?
3. 在透明条的绘制过程中,为什么要设置掩码的透明度为128?
阅读全文