画图功能的实现

el/2024/2/25 22:47:31
import numpy as np
import cv2
import matplotlib.pyplot as plt
def show(image):plt.imshow(image)plt.axis('off')plt.show()
image = np.zeros((300,300,3),dtype='uint8')
#可以看成一张图片,三通道的、长宽为300*300,里面像素全为0
show(image)#显示图片

在这里插入图片描述

#画线
green = (0,255,0)
cv2.line(image,(0,0),(300,300),green)
#画一条从0,0到300,300的一条绿色的线
show(image)

在这里插入图片描述

blue = (0,0,255)
cv2.line(image,(300,0),(150,150),blue,5)
#画一条蓝色的从300,0到150,150,粗细度为5的线
#之前绿色的没用指定粗细,默认值为1
show(image)

在这里插入图片描述

#画矩形
red = (255,0,0)
cv2.rectangle(image,(10,10),(60,60),red,2)
#画矩形,第一个点为矩形左上方的坐标,第二个为右下方坐标
#red为指定颜色,2为指定矩形框宽度
show(image)

在这里插入图片描述

cv2.rectangle(image,(50,50),(100,100),blue,5)
show(image)

在这里插入图片描述

cv2.rectangle(image,(50,200),(220,280),green,-1)
#如果粗细度写成了-1,表示填充色
show(image)

在这里插入图片描述

#画圆形
image = np.zeros((300,300,3),dtype='uint8')
(cX,cY) = image.shape[1]//2,image.shape[0]//2
white = (255,255,255)
#shape[0]是图片的高度。shape[1]是图片的宽度
for r in range(0,151,15):cv2.circle(image,(cX,cY),r,white,2)#第一个坐标是圆中心坐标点,r是指圆的半径#while是指圆线条颜色,2代表圆的线的宽度
show(image)

在这里插入图片描述

image = np.zeros((300,300,3),dtype='uint8')
for i in range(10):#半径取值,为从5到200的一个随机值radius = np.random.randint(5,200)#颜色取值,从0到255随机取#size是因为是取三通道的数值,后面的tolist是表示把它变成一个listcolor = np.random.randint(0,255,size=(3,)).tolist()#圆心取值,size等于2是因为圆心坐标点需要两个数x和ypt = np.random.randint(0,300,size=(2,))#画图,依次为圆心,半径、颜色、填充cv2.circle(image,tuple(pt),radius,color,-1)
show(image)
#这个函数每次执行会得到不一样的图,因为都是随机的

在这里插入图片描述
在这里插入图片描述


http://www.ngui.cc/el/4423611.html

相关文章

图像平移功能的实现

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

图像旋转放大缩小

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

resize图片形状大小

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

翻转+裁剪+图像算数

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

按位计算+遮挡

bitwise_and是对二进制数据进行‘与’操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制‘与’操作,1&11,1&00,0&10,0&00bitwise_or是对二进制数据进行‘或’操作,即对图像(灰度…

图像平滑颜色空间转换

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

二值化Thresholding

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

读取摄像头视频读取视频文件视频的写入

import numpy as np import cv2#0代表从摄像头获取图像数据,如果从本地获取可以写路径 cap cv2.VideoCapture(0)while(True):# ret表示读取成功True或失败False#frame表示读取到的图像的内容#总的意思是读取一帧数据ret,frame cap.read()#灰度图gray cv2.cvtColo…

随机数的生成矩阵的运算2numpy的索引

import numpy as npsample np.random.random((3,2)) #生成3行2列由0-1的随机数组成的数组 print(sample)sample np.random.normal(size(3,2)) #生成3行2列由符合标准正态分布随机数组成的数组 print(sample)sample np.random.randint(0,10,size(3,2)) #生成3行2列由0-10随机…

array合并array分割numpy的浅拷贝和深拷贝

import numpy as nparr1 np.array([1,2,3]) arr2 np.array([4,5,6]) arr3 np.vstack((arr1,arr2))#垂直合并 print(arr3) print(arr3.shape)arr4 np.hstack((arr1,arr2))#水平合并 print(arr4) print(arr4.shape)不管是垂直合并还是水平合并,都可以多个合并 另…