读取图片,给图片随机打上水印,将水印的位置输出,保存为yolo的格式的txt文件,保存到同一个文件中,并将图片保存到文件夹,python实现
时间: 2024-04-15 11:28:22 浏览: 92
以下是一个使用 Python 实现读取图片、随机打上水印并保存水印位置和图片的示例代码:
```python
import cv2
import random
def add_watermark(image, watermark_text):
# 选择字体、字号、字体厚度等参数
font = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 1
font_thickness = 2
# 获取文字的大小
text_size, _ = cv2.getTextSize(watermark_text, font, font_scale, font_thickness)
# 随机生成水印的位置
x = random.randint(0, image.shape[1] - text_size[0] - 10)
y = random.randint(text_size[1] + 10, image.shape[0] - 10)
# 在图片上添加水印
cv2.putText(image, watermark_text, (x, y), font, font_scale, (0, 0, 255), font_thickness)
return (x, y)
# 读取图片
image_path = 'image.jpg'
image = cv2.imread(image_path)
# 添加水印并保存水印位置
watermark_text = 'Watermark'
watermark_position = add_watermark(image, watermark_text)
# 保存图片
save_image_path = 'watermarked_image.jpg'
cv2.imwrite(save_image_path, image)
# 保存水印位置到 YOLO 格式的文本文件
save_txt_path = 'watermark_positions.txt'
with open(save_txt_path, 'w') as f:
f.write(f'{watermark_position[0]},{watermark_position[1]}')
```
请确保您已经安装了 OpenCV 库(`pip install opencv-python`),并将代码中的 `image.jpg` 替换为您想要添加水印的图片路径。水印文本可以根据需要进行更改。最后,将生成的水印位置保存到 `watermark_positions.txt` 文件中,并将带有水印的图片保存为 `watermarked_image.jpg`。
阅读全文