python opencv如何实现图片绘制

这篇文章主要介绍了python opencv如何实现图片绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

点和圆 :

circle(img,center,radius,color,thickness=None,lineType=None,shift=None)。各参数意义及作用如下。

  • img:待画圆所在的图像。
  • center:待画圆的圆心坐标。
  • radius:待画圆的半径。
  • color:待画圆的边框颜色,颜色格式为bgr格式。就是通道值
  • thickness:待画圆的边框宽度,正数表示边框宽度,负数表示填充圆形。
  • lineType:圆边框线型,可为 0,4,8
  • shift:圆心坐标和半径的小数点位数

画点实际上就是画半径很小的实心圆

import cv2
img = cv2.imread("500x400.jpg")
img1=cv2.circle(img,(60,60),30,(0,0,255),-1) #画一个红色实心圆
img1=cv2.circle(img1,(200,200),50,(255,0,0),3) #画一个蓝边框的圆
cv2.imwrite("linsi.jpg",img1)
cv2.waitKey(0)

注意:在img和img1上同时画

效果图:

画线 :

import cv2
img = cv2.imread("500x400.jpg")
img1=cv2.line(img,(10,10),(200,200),(0,255,0),3) #直线
#参数2 起点坐标;参数3 终点坐标;参数4 颜色;参数5 线条宽度

cv2.imwrite("linsi.jpg",img1)

cv2.waitKey(0)

画矩形:

import cv2
img = cv2.imread("500x400.jpg")
img1=cv2.rectangle(img,(10,10),(30,40),(255,0,0),2) #画矩形
#参数2 左上角坐标;参数3 右下角坐标;参数4 颜色;参数5 线条宽度
cv2.imwrite("linsi.jpg",img1)
cv2.waitKey(0)

椭圆:

import cv2
img = cv2.imread("500x400.jpg")
img1=cv2.ellipse(img,(256,256),(100,50),0,30,180,(255,0,0),-1) # 画椭圆
#参数2 椭圆中心
#第三个参数 椭圆的长短轴的长度
#第四个参数 整个椭圆的偏转角度(顺时针)
#第五个参数 圆弧起始角的角度
#第六个参数 圆弧终结角的角度
# 圆弧角度->x轴方向为0,逆时针方向为正
#第七个参数 color 线条的颜色
#第八个参数  线条的粗细程度,如果是负数表示填充
#第九个参数  line_type 线条的类型 ???

cv2.imwrite("linsi.jpg",img1)
cv2.waitKey(0)

多边形:

画多边形——需要指定每个顶点的坐标

import cv2
import numpy as np

img = cv2.imread("500x400.jpg")

points = np.array([[150,50],[140,140],[200,170],[250,250],[150,50]],np.int32) #多边形各顶点坐标
#数据类型必须是np.int32
points = points.reshape(-1,1,2)

img1=cv2.polylines(img,[points],True,(0,0,255),3) #画多边形
#参数2 各顶点
#参数3 True表示封闭,False表示不封闭
#参数4 颜色
#参数5 线条粗细

cv2.imwrite("linsi.jpg",img1)
cv2.waitKey(0)

添加文字 :

import cv2
import numpy as np
img = cv2.imread("500x400.jpg")
font=cv2.FONT_HERSHEY_SIMPLEX
font=cv2.FONT_HERSHEY_DUPLEX
img1=cv2.putText(img,'wo is liming',(80,90), font, 2,(255,255,255),3) #画文字
#参数3 位置
#参数5 字体大小
#参数7 线型
cv2.imwrite("linsi.jpg",img1)
cv2.waitKey(0)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python opencv根据颜色进行目标检测的方法示例

    颜色目标检测就是根据物体的颜色快速进行目标定位.使用cv2.inRange函数设定合适的阈值,即可以选出合适的目标. 建立项目colordetect.py,代码如下: #! /usr/bin/env python # -*- coding: utf-8 -*- import numpy as np import cv2 def colorDetect(): image = cv2.imread('./1.png') # 使用RGB颜色空间检测红 蓝 黄 灰,设置合适的阈值 boundaries

  • opencv python Canny边缘提取实现过程解析

    这篇文章主要介绍了opencv python Canny边缘提取实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Canny是边缘提取算法,在1986年提出的是一个很好的边缘检测器Canny算法介绍 非最大信号抑制: 高低阈值连接: example import cv2 as cv import numpy as np # canny运算步骤:5步 # 1. 高斯模糊 - GaussianBlur # 2. 灰度转换 - cvtCol

  • python使用openCV遍历文件夹里所有视频文件并保存成图片

    如果你在文件夹里有很多视频,并且文件夹里还有文件夹,文件夹里的文件夹也有视频,怎么能逐个读取并且保存..所以我写了个代码用了os,walk,这个可以遍历所有文件夹里的文件和文件夹 import os import cv2 cut_frame = 250 # 多少帧截一次,自己设置就行 save_path = "C:\文献与资料\手持红外\图片" for root, dirs, files in os.walk(r"C:\文献与资料\手持红外"): # 这里就填文件夹

  • python opencv 实现对图像边缘扩充

    原始图像 根据图像的边界的像素值,向外扩充图片,每个方向扩充50个像素. a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REPLICATE) 把靠近边界的50个像素翻折出去(轴对称): a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REFLECT) 常数填充: a = cv2.copyMakeBorder(img,50,50,50,50, cv2.BORDER_CONSTANT,value

  • 关于初始种子自动选取的区域生长实例(python+opencv)

    算法中,初始种子可自动选择(通过不同的划分可以得到不同的种子,可按照自己需要改进算法),图分别为原图(自己画了两笔为了分割成不同区域).灰度图直方图.初始种子图.区域生长结果图. 另外,不管时初始种子选择还是区域生长,阈值选择很重要. import cv2 import numpy as np import matplotlib.pyplot as plt #初始种子选择 def originalSeed(gray, th): ret, thresh = cv2.cv2.threshold(gr

  • python通过opencv实现图片裁剪原理解析

    这篇文章主要介绍了python通过opencv实现图片裁剪原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 图像裁剪的基本概念 : 图像裁剪是指将图像中我们想要的研究区以外的区域去除,经常是按照行政区划或研究区域的边界对图像进行裁剪.例如,一张500×400的图像,我们只想要中间的250×200的区域,就可以使用图像裁剪将四周的区域去除. 在实际开发工作中,我们经常需要对图像进行分幅裁剪,按照ERDAS实际图像分幅裁剪的过程,可以将图像分

  • Python-opencv 双线性插值实例

    我就废话不多说了,直接上代码吧! #coding=utf-8 import cv2 import numpy as np '''双线性插值''' img = cv2.imread('timg.jpeg', cv2.CV_LOAD_IMAGE_GRAYSCALE) # load the gray image cv2.imwrite('img.jpg', img) h, w = img.shape[:2] # shrink to half of the original a1 = np.array(

  • Python-openCV读RGB通道图实例

    我就废话不多说了,直接上代码吧! #coding=utf-8 '''openCV中最核心的的类是Mat,他是matrix的缩写代表矩阵,该类在头文件opencv2\core\core.hpp中,它含有很多基本矩阵运算,C++需引用 Python含有numpy,在Python中不需要使用Mat''' #openCV中图像存储方式为(h,w,channel),顺序为BGR import cv2 import sys if __name__=='__main__': if len(sys.argv)>

  • python opencv如何实现图片绘制

    这篇文章主要介绍了python opencv如何实现图片绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 点和圆 : circle(img,center,radius,color,thickness=None,lineType=None,shift=None).各参数意义及作用如下. img:待画圆所在的图像. center:待画圆的圆心坐标. radius:待画圆的半径. color:待画圆的边框颜色,颜色格式为bgr格式.就是通道值 th

  • python OpenCV学习笔记之绘制直方图的方法

    本篇文章主要介绍了python OpenCV学习笔记之绘制直方图的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 官方文档 – https://docs.opencv.org/3.4.0/d1/db7/tutorial_py_histogram_begins.html 直方图会让你对图像的强度分布有一个全面的认识.它是一个在x轴上带有像素值(从0到255,但不总是),在y轴上的图像中对应的像素数量的图. 这只是理解图像的另一种方式.通过观察图像的直方图,你可以直

  • Python OpenCV实现基本图形绘制

    1.导入模块 import cv2 as cv import numpy as np 2.OpenCV绘图大致步骤 OpenCV 图形绘制步骤 (1)先定义基础画布canvas = np.zeros((400,600,3),dtype=np.uint8)+255 (2)画布分界,(300,0)分别是宽.高cv.line(canvas,(300,0),(300,399),(0,0,0,),2) (3)在画布上绘制图形,如画圆cv.circle(canvas, (150, 300), 88, (0,

  • Python+OpenCv制作证件图片生成器的操作方法

    本项目使用Python和OpenCv实现身份证图片生成工具,填入信息,选择一张头像图片(即可生成黑白和彩色身份证图片).可以选择是否自动抠图,自动抠图目前仅支持蓝色背景,对自动抠图效果不满意可以手动抠图. 在线抠图地址: https://burner.bonanza.com/ https://www.gaoding.com/koutu 参照标准: 正面 "姓名"."性别"."民族"."出生年月日"."住址"

  • 解决python opencv无法显示图片的问题

    结合网上解决方法,总结了一下 注意三点: 1.文件名或路径名开头如果会引起转义,则\要替换为\\ 2.文件不能放在桌面,因为读取时按中文路径 3.运行后未响应,原因还没有查明,在下一行 cv.waitKey(0)解决 import cv2 as cv img = cv.imread("D:\\python_file\ae.jpg") cv.imshow("image",img) #cv.waitKey(0) 以上这篇解决python opencv无法显示图片的问题就

  • python opencv将表格图片按照表格框线分割和识别

    如下小程序为使用python+opencv将表格图片,按照表格进行分割,并识别分割后的子图片中的文字,希望对需要的小伙伴有一些些帮助.具体的实现见如下代码. # -*- coding: utf-8 -*- """ Created on Tue May 28 19:23:19 2019 将图片按照表格框线交叉点分割成子图片(传入图片路径) @author: hx """ import cv2 import numpy as np import py

  • Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头

    一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的Python科学计算库 def get_image_info(image): print(type(image)) #type() 函数如果只有第一个参数则返回对象的类型 在这里函数显示图片类型为 numpy类型的数组 print(image.shape) #图像矩阵的shape属性表示图像的大小,shape会返回tup

  • Python+Opencv实现把图片、视频互转的示例

    1. 安装Opencv包 pip install opvencv-python 2.实现代码: 视频转为图片: import cv2 cap=cv2.VideoCapture('E:/video/video-02.mp4') # 获取一个视频打开cap isOpened=cap.isOpened # 判断是否打开 print(isOpened) fps=cap.get(cv2.CAP_PROP_FPS) print(fps) # 获取宽度 width=int(cap.get(cv2.CAP_PR

  • 详解Python+opencv裁剪/截取图片的几种方式

    前言 在计算机视觉任务中,如图像分类,图像数据集必不可少.自己采集的图片往往存在很多噪声或无用信息会影响模型训练.因此,需要对图片进行裁剪处理,以防止图片边缘无用信息对模型造成影响.本文介绍几种图片裁剪的方式,供大家参考. 一.手动单张裁剪/截取 selectROI:选择感兴趣区域,边界框框选x,y,w,h selectROI(windowName, img, showCrosshair=None, fromCenter=None): . 参数windowName:选择的区域被显示在的窗口的名字

  • Python OpenCV实现传统图片格式与base64转换

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法.通过http传输图片常常将图片数据转换成base64之后再进行传输. Base64简介 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息.例如,在Java

随机推荐