opencv+python实现一些图像的基本操作

本文介绍如何利用Python的OpenCV库生成特定尺寸的图像,绘制并填充多边形,找到并绘制最小外接矩形,以及通过旋转使多边形的外接矩形与坐标轴平行。涉及关键步骤包括创建图像、多边形绘制、最小外接矩形计算及图像旋转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.生成一幅size=[512,512]图像

import cv2
import numpy as np

#生成一幅黑底图像
img_black=np.zeros([512,512], dtype = np.uint8)
#生成一幅白底图像
img=255-img_black

2.绘制一个多边形

#绘制图像
lines = np.array([[[100,100], [300,150],[400,350], [50,400]]], dtype = np.int32) # 必须是array数组的形式
cv2.polylines(img, lines, 1, 0)
#黑色填充多边形
cv2.fillPoly(img,lines,0)

3.画出绘制多边形的最小外接矩形

#画出图像的最小外接矩形
rect=cv2.minAreaRect(lines)
# 中心坐标
x, y = rect[0]
#画一个以x,y为中,r=100的圆
cv2.circle(img, (int(x), int(y)), 100, (0, 255, 0), 5)

# 长宽,总有 width>=height
width, height = rect[1]

# 角度:[-90,0)
angle = rect[2]
print('width=', width, 'height=', height, 'x=', x, 'y=', y, 'angle=', angle)
box=cv2.boxPoints(rect)
box=np.int32([box])
cv2.polylines(img, box, 1, 0)

4.旋转当前图像,使外接矩形的长宽与图像的坐标系平行

# 逆时针旋转30度
M = cv2.getRotationMatrix2D((512 / 2, 512 / 2), angle, 1)
img = cv2.warpAffine(img, M, (512, 512))


cv2.imshow("zeros",img)
cv2.waitKey(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值