计算机视觉:线段图形和文字图片的绘制

Posted il_持之以恒_li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机视觉:线段图形和文字图片的绘制相关的知识,希望对你有一定的参考价值。

1. 线段的绘制

使用方法cv2.line()

最后这个shift参数小编不是很懂它的具体意思。

import cv2
import numpy as np

newImageInfo = (500,500,3)  # 彩色图片,width、height均为500
dst = np.zeros(newImageInfo,np.uint8)
cv2.line(dst,(100,200),(400,200),(0,0,255))
cv2.line(dst,(100,100),(400,400),(0,0,255),5)
# 目标图片 起始位置 终止位置 线段颜色(b,g,r) 线条宽度
cv2.line(dst,(100,300),(400,300),(255,0,0),8,cv2.LINE_AA)  # 线条光滑程度
cv2.imshow('dst',dst)
cv2.waitKey(0)

2. 图形的绘制

2.1 绘制矩形

最后一个参数-1代表填充整个矩形,如果这个参数大于等于0,代表矩形边框线条的粗细程度。

import cv2
import numpy as np

newImageInfo = (500,500,3)
dst = np.zeros(newImageInfo,np.uint8)
cv2.rectangle(dst,(50,100),(200,300),(255,0,0),-1)
cv2.rectangle(dst,(100,310),(200,450),(0,0,255),5)

cv2.imshow('dst',dst)
cv2.waitKey(0)

2.2 圆形的绘制

import cv2
import numpy as np

newImageInfo = (500,500,3)
dst = np.zeros(newImageInfo,np.uint8)
cv2.circle(dst,(250,250),(50),(255,0,0),-1)
cv2.circle(dst,(250,250),(100),(0,0,255),4)
cv2.imshow('dst',dst)
cv2.waitKey(0)

2.3 椭圆的绘制

import cv2
import numpy as np

newImageInfo = (520,520,3)
dst = np.zeros(newImageInfo,np.uint8)

cv2.ellipse(dst,(256,256),(150,100),0,0,360,(255,255,0),-1)
cv2.ellipse(dst,(256,256),(250,150),0,0,360,(0,255,0),4)

cv2.imshow('dst',dst)
cv2.waitKey(0)

3. 文字图片的绘制

import cv2

img = cv2.imread(filename='../anqila21.jpg',flags=1)
font = cv2.FONT_HERSHEY_PLAIN
cv2.putText(img,'she is anqila',(100,300),font,1,(200,100,255),2,cv2.LINE_AA)  # 文字的绘制
# 字体内容、字的坐标,字体样式、字体大小,字体颜色、字体粗细

height = int(img.shape[0]*0.2)
width = int(img.shape[1]*0.2)
imgResize = cv2.resize(img,(width,height))
for i in range(height):
    for j in range(width):
        img[i,j] = imgResize[i,j]


cv2.imshow('dst',img)
cv2.waitKey(0)

以上是关于计算机视觉:线段图形和文字图片的绘制的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV-Python计算机视觉函数

Python 计算机视觉 —— OpenCV 基础

在图片上绘制图形和添加文字

如何用OpenGL实现计算机图形学中的平移动画

Real - time Rendering 实时计算机图形学

OpenCV 图像处理:常用绘图函数