opencv图像居中打码200×200
时间: 2024-09-09 16:01:06 浏览: 24
在OpenCV库中,你可以通过以下几个步骤将图像居中并对齐,并添加一个200x200像素的遮罩(打码):
1. **读取图像**:
使用`cv2.imread()`函数加载图片,例如:
```python
img = cv2.imread('image_path.jpg', cv2.IMREAD_COLOR)
```
2. **获取图像尺寸**:
获得原始图像的宽度和高度,以便计算遮罩的位置:
```python
height, width, _ = img.shape
```
3. **确定遮罩位置**:
计算出打码区域应该开始于图像中心点减去100像素,因为遮罩大小是200x200像素,所以左上角坐标应该是`(width//2 - 100, height//2 - 100)`。
4. **创建遮罩**:
创建一个新的全黑200x200像素的矩形作为遮罩,可以设置透明度或者其他颜色:
```python
mask = np.zeros((200, 200), dtype=np.uint8) if not transparent else np.ones((200, 200), dtype=np.uint8) * 255
```
5. **绘制遮罩并合并到原图**:
将遮罩放回图像中心位置,然后用`cv2.addWeighted()`函数将原始图像和遮罩结合在一起,通常会设置一个小权重值如0.6来保持图像部分可见:
```python
combined = cv2.addWeighted(img, 1, mask, 0.6, 0) # 或者直接 `img[height//2 - 100:height//2 + 100, width//2 - 100:width//2 + 100] = mask`
```
6. **保存结果**:
最后保存处理后的图像:
```python
cv2.imwrite('masked_image.jpg', combined)
```