用 OpenCV 绘制 OpenCV 的 logo 图标

此代码参照B站的一位 UP 主的学习视频:https://www.bilibili.com/video/av68735378?p=7

 

直接上代码:

%matplotlib inline

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
import math

# 放置一个白色底的画布
img = np.zeros((Height, W, 3), np.uint8)
# img[0:Height,0:W] = 255
img[:] = 255

# 提前设定画布的长宽以及下方文字大概所占的长度
W = 1000
Height = int(1.3 * W)
D = int(0.2 * W)
# O = (int(0.5 * W), int(0.5 * W))

# 大圆的半径
A = (int(0.5 * W), int(0.5 * W - D))
B = (int(0.5 * W - math.sqrt(3)/2 * D), int(0.5 * W + 0.5 * D))
C = (int(0.5 * W + math.sqrt(3)/2 * D), int(0.5 * W + 0.5 * D))
R1 = int(math.sqrt(3) * 0.4 * D)

# 小圆的半径
R2 = int(math.sqrt(3) * 0.2 * D)

# 旋转的角度
ang = 60

# 绘制大圆
cv.circle(img, A, R1, (255,0,0), -1)
cv.circle(img, B, R1, (0,255,0), -1)
cv.circle(img, C, R1, (0,0,255), -1)

# 绘制小圆
cv.circle(img, A, R2, (255,255,255), -1)
cv.circle(img, B, R2, (255,255,255), -1)
cv.circle(img, C, R2, (255,255,255), -1)

# 绘制椭圆形
cv.ellipse(img, A, (R1,R1), ang, 0, ang, (255,255,255), -1)
cv.ellipse(img, B, (R1,R1), 360 - ang, 0, ang, (255,255,255), -1)
cv.ellipse(img, C, (R1,R1), 360 - 2 * ang, 0, ang, (255,255,255), -1)

# 绘制文本
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img, 'OpenCV', (100,1000), font, 7, (0,0,0), 25)

plt.imshow(img)
plt.show()

 

注:

因为我是在 Anaconda 的 Jupty Nootbook 上进行代码编辑的,所以代码的第一行  %matplotlib inline  是为了让 matplotlib 绘制出来的图形能够嵌到页面上!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中使用OpenCV绘制点,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Java的OpenCV库,并将其正确配置到你的项目中。 2. 导入所需的类和方法: ```java import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.Point; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.imgproc.Imgproc; import org.opencv.highgui.HighGui; ``` 3. 在代码中加载图像并创建一个Mat对象: ```java Mat image = Imgcodecs.imread("path/to/your/image.jpg"); ``` 4. 创建一个Point对象来表示你想要绘制的点的坐标: ```java Point point = new Point(x, y); ``` 5. 使用Scalar对象定义点的颜色: ```java Scalar color = new Scalar(0, 0, 255); // BGR颜色 ``` 6. 调用OpenCV绘制函数,在图像上绘制点: ```java Imgproc.circle(image, point, 5, color, -1); // 绘制一个半径为5的实心圆 ``` 7. 最后,显示绘制好点的图像: ```java HighGui.imshow("Image with Point", image); HighGui.waitKey(0); ``` 完整的代码示例如下: ```java import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.Point; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.highgui.HighGui; import org.opencv.imgproc.Imgproc; public class DrawPointExample { public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat image = Imgcodecs.imread("path/to/your/image.jpg"); Point point = new Point(100, 100); Scalar color = new Scalar(0, 0, 255); Imgproc.circle(image, point, 5, color, -1); HighGui.imshow("Image with Point", image); HighGui.waitKey(0); } } ``` 记得将"path/to/your/image.jpg"替换为你的实际图像的路径。这段代码将在图像上绘制一个红色的点,并显示结果图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值