1、在图上绘矩形与点

本文详细介绍了如何使用OpenCV、PIL和Matplotlib库在Python中实现图像处理功能,包括绘制矩形框、点、以及给矩形添加透明蒙版。通过实例展示了这些库在图像编辑中的应用。
摘要由CSDN通过智能技术生成

目录

Opencv实现

PIL实现

Matplotlib实现


Opencv实现

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 绘制矩形框(左上角和右下角坐标)
start_point = (100, 100)
end_point = (200, 200)
color = (0, 255, 0)  # 绿色
thickness = 2  # 线宽
cv2.rectangle(image, start_point, end_point, color, thickness)

# 绘制点(坐标)
point = (300, 300)
color = (0, 0, 255)  # 红色
thickness = -1  # 填充点
cv2.circle(image, point, radius=5, color=color, thickness=thickness)

# 显示绘制结果
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

进一步,如何给矩形框加上浅色蒙版?

import cv2
import numpy as np

# 加载图像
image = cv2.imread('path_to_your_image.jpg')

# 绘制矩形框
cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)

# 创建一个与原图同样大小的全绿色图像,然后在矩形区域内填充颜色
overlay = image.copy()
cv2.rectangle(overlay, (x1, y1), (x2, y2), (0, 255, 0), -1)  # -1 表示填充整个矩形

# 合成蒙版和原图,这里的 0.3 是绿色蒙版的透明度
alpha = 0.3
image_new = cv2.addWeighted(overlay, alpha, image, 1 - alpha, 0)

# 显示图像
cv2.imshow('Image with Green Mask', image_new)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存图像
cv2.imwrite('output_image_with_green_mask_cv.jpg', image_new)

注:在 OpenCV 中,我们可以使用 cv2.addWeighted 函数来将绿色蒙版与原始图像合成,以实现透明效果。


PIL实现

from PIL import Image, ImageDraw

# 加载图像
image = Image.open('path_to_your_image.jpg')

# 创建一个 ImageDraw 对象
draw = ImageDraw.Draw(image)

# 绘制矩形框,参数分别是:矩形框的左上角坐标、右下角坐标、颜色和线条粗细(可选)
draw.rectangle([x1, y1, x2, y2], outline='green', width=2)

# 绘制点,参数分别是:点的坐标列表和颜色
draw.point((x, y), fill='red')

# 显示图像
image.show()

# 保存图像
image.save('output_image_with_pil.jpg')

进一步?

from PIL import Image, ImageDraw

# 加载图像
image = Image.open('path_to_your_image.jpg')

# 创建一个 ImageDraw 对象
draw = ImageDraw.Draw(image)

# 绘制矩形框
draw.rectangle([x1, y1, x2, y2], outline='green', width=2)

# 绘制一个半透明的绿色矩形蒙版
# 创建一个带有透明度的绿色
green_mask_color = (0, 255, 0, 128)  # 最后一个值是 alpha (128 表示半透明)
# 在矩形内部填充绿色蒙版
draw.rectangle([x1, y1, x2, y2], fill=green_mask_color)

# 显示图像
image.show()

# 保存图像
image.save('output_image_with_green_mask_pil.png')  # 注意保存为 PNG 以保留透明度

注:在 Pillow 中,我们可以通过指定 RGBA 颜色模式来设置颜色的透明度。


Matplotlib实现

import matplotlib.pyplot as plt
import matplotlib.patches as patches

# 读取图像
image = plt.imread('image.jpg')

# 创建画布和子图
fig, ax = plt.subplots()

# 绘制矩形框
rect = patches.Rectangle((100, 100), 100, 100, linewidth=2, edgecolor='g', facecolor='none')
ax.add_patch(rect)

# 绘制点
ax.plot(300, 300, 'ro', markersize=5)

# 显示绘制结果
ax.imshow(image)
plt.axis('off')  # 关闭坐标轴
plt.show()

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值