python之opencv库
admin
2024-05-01 17:02:27
0

OpenCV 是一个开源的计算机视觉库,应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。

显示图片

cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道(或者直接写1)
cv2.IMREAD_GRAYSCALE:读入灰度图片(或者直接写0)

import cv2
img = cv2.imread("test.png")
# 显示图片
cv2.imshow("图片",img)
#图像显示时间
cv2.waitKey(0)

读入一张灰度图:

import  cv2
img=cv2.imread("test.jpg",0)
print(img.shape)

获取图像属性

# 获取RGB图的高、宽
heigh = img.shape[0] # 高
width = img.shape[1] # 宽
# 获取RGB图的高、宽、深度
h,w,d = img.shape
# 获得图片大小 h*w 或 h*w*d
img_size = img.size
# 获得图片数据类型
img.dtype

图像保存

import  cv2
img = cv2.imread("test.jpg")
cv2.imwrite("test1.jpg",img)

调整图像大小

import cv2
import numpy as npimg = cv2.imread("test.png")
print(img.shape)# 缩放
resized = cv2.resize(img,(200,400))
print(resized.shape)
cv2.imshow("缩放后的图像", resized)
cv2.waitKey(0)

图像翻转

import cv2
image = cv2.imread("test.png")imgFlip1 = cv2.flip(image, 1)  # 0垂直翻转 ;1水平翻转 ;-1水平和垂直翻转cv2.imshow("image",imgFlip1)
cv2.waitKey(0)

图像旋转

cv2.ROTATE_90_CLOCKWISE:顺时针旋转 90 度
cv2.ROTATE_180: 旋转 180 度
cv2.ROTATE_90_COUNTERCLOCKWISE:逆时针旋转 90 度

import cv2
image=cv2.imread("test.png")
image2 = cv2.rotate(image,cv2.ROTATE_90_CLOCKWISE) #顺时针旋转90度
cv2.imshow("image2",image2)
cv2.waitKey(0)

裁剪

import cv2
import numpy as npimg = cv2.imread("test.png")
print(img.shape)# 裁剪
imgCropped = img[46:119,352:495]cv2.imshow("Image Cropped",imgCropped)
cv2.waitKey(0)

画框

设置的参数:

  • img:想要绘制图像的那幅图像,这里是output。
  • pt1:矩形左上角坐标,这里是(0, 0)。
  • pt2:矩形右下角坐标,这里是(250,350)。
  • color:BGR元组,这里是红色(0,0,255)。
  • thickness:线条粗细(如果一个闭合图形设置为负数,那么这个图形就会被填充),这里是2。
img = np.zeros((512,512,3),np.uint8)
cv2.rectangle(img,(0,0),(250,350),(0,0,255),2)cv2.imshow("Image",img)
cv2.waitKey(0)

画圆

import cv2image = cv2.imread('demo1.jpg')
output = image.copy()
cv2.circle(output, (32, 25), 20, (255,0,0),-1)
cv2.imshow('Circle', output)
cv2.waitKey()

画线

画线的话,我们只需要指定起点和终点即可。

import cv2image = cv2.imread('demo1.jpg')
output = image.copy()
cv2.line(output, (35,25),(125,69),(255,0,0),5)
cv2.imshow('Line', output)
cv2.waitKey()

我们指定起点为(35,25),终点为(125,69)。

添加文字

设置的参数:

  • img:想要绘制图像的那幅图像,这里是output。
  • text:要绘制的文字内容,这里是Sasaki Nozomi。
  • pt:绘制的位置,这里是(10,25)。
  • font:字体类型,这里是cv2.FONT_HERSHEY_SIMPLEX。
  • scale:字体大小乘数,这里是0.7。
  • color:字体颜色,这里是红色(0,0,255)。
  • thickness:字体粗细,这里是2。
import cv2image = cv2.imread('demo.jpg')
output = image.copy()
cv2.putText(output,'Sasaki Nozomi',(10, 25),cv2.FONT_HERSHEY_SIMPLEX,0.7,(0, 0, 255),2)
cv2.imshow('Text', output)
cv2.waitKey()

二值化图像

THRESH_BINARY:超过阈值为maxval,否则为0
THRESH_BINARY_INV:超过阈值为0,否则为maxval(相当于上个参数取反)
THRESH_TRUNC:超过阈值为thresh,低于阈值灰度值不变
THRESH_TOZERO:超过阈值灰度值不变,否则为0
THRESH_TOZERO_INV:超过阈值为0,低于阈值灰度值不变

import cv2img = cv2.imread('test.png')#将彩色图片转化为灰度图
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
#返回两个结果, 一个是阈值, 另一个是处理后的图片
ret,dst = cv2.threshold(gray,175,255,cv2.THRESH_BINARY)
cv2.imshow('dog', np.hstack((gray, dst)))
cv2.waitKey(0)

Numpy生成图像

使用Numpy库生成一个8×8大小数组的黑色图像

import cv2
import numpy as np
import matplotlib.pylab as pylabimg = np.zeros((8,8),dtype=np.uint8) #创建一个8×8的全零数组
pylab.gray() #不使用颜色信息
pylab.imshow(img) #可视化图像

相关内容

热门资讯

陈觉中豪掷55亿!快乐蜂全资收... 欢迎查阅菲龙网更多精彩报道: 陈觉中豪掷55亿!快乐蜂全资收购韩国知名火锅品牌 【菲龙网专讯】菲律宾...
芯片龙头A+H上市,涨跌另有逻... 最近有只千亿市值的芯片龙头完成A+H上市,港股首日收盘大幅走高超60%,A股也同步走高,市值逼近20...
筑牢安全防线 情暖新春一线——... 新春佳节将至,为压实春节假期安全生产责任,保障诊疗秩序平稳、就医环境安全,让一线职工和住院患者感受新...
消费主义打败民族主义,这是中国... 内容提要: 疫情后中国经济低迷与消费理性回归,使消费主义逐渐压倒民族主义。过去因萨德、D&G眯眯眼、...
永太科技:公司股票自2月24日... 每经AI快讯,永太科技2月13日晚间发布公告称,浙江永太科技股份有限公司于2026年2月9日披露了《...
原创 黄... 2026年2月16日,国内黄金市场遭遇寒流,实时价格定格在1119元/克,中国黄金基础金价下调至11...
原创 银... 近年来,国人的储蓄意愿显著增强,截至2025年3月末,我国居民存款总额已攀升至129.7万亿元。这场...
消除恐惧,揭开麻醉的神秘面纱 ... 麻醉的分类 一、全身麻醉 全身麻醉是指麻醉药物作用于全身,使患者进入到无意识状态,而周身无疼痛感觉,...
北京炒股大赛冠军说:炒股最笨的... 前言: 炒股最困难的不是选股,也不是买卖,而是等待; 人生最困难的不是努力,也不是奋斗,而是抉择...
原创 长... “战斗结束的那一天,医院接收了2800名伤员。手指、脚趾因寒冷被冻掉的,截肢的伤员数不胜数。这些战士...
骨龄检测的重要性 为何每个孩子... 骨龄是骨骼生长年龄的简称。通过用仪器设备检测孩子骨骼的大小、形态、结构等判断孩子的身体发育健康程度、...
原创 手... 楼市寒意渐浓,新房二手房市场均显疲态。国家统计局发布的70城数据显示,新房价格同比下跌的城市已达48...
原创 为... 近两年来,“老破小”以其独特的魅力吸引了越来越多的购房者,这一现象引发了广泛关注。对此,我们特地采访...
原创 转... 65岁的张大爷查出高血脂,医生除了交代了一些生活习惯,还给开了阿托伐他汀,叮嘱他每天按时吃。 但张大...
原创 美... 美国债务火山要喷发,却怪中国不还114年前的“冤枉债”?别被话术骗了,真实战场在金融市场:中国美债持...
中国人民银行、国家金融监督管理... 中国网财经2月14日讯 昨日,中国人民银行网站显示,为构建覆盖全面的宏观审慎管理体系,强化系统重要性...
剑指账户管理等问题 两大银行同... 财联社2月15日讯,根据央行2月14日公布的行政处罚公示显示,两大国有银行中国建设银行与上海浦东发展...
原创 排... 传统淡季的1月,上海房地产交易中心却人满为患;春节前的最后一个周末,中介门店的带看量不减反增。 刚刚...
原创 中... 美国国会那219票,不是突然冒出来的。 它背后是加油站涨价、建材报价单翻页、超市收银台前沉默的皱眉。...
原创 3... 中国人民银行最新公布的一月份金融数据显示,人民币存款余额达到了惊人的336.77万亿元,当月新增额高...