当前位置: 首页 > news >正文

网站app的意义wordpress福利博客

网站app的意义,wordpress福利博客,亚马逊跨境电商开店,桂林市天气预报7天文章目录 前言一、OpenCV简介二、计算机中的图像表达1.图像表示2.图像存储 三、基本图像操作1.创建窗口2.读取图像3.显示图像4.保存图像5.创建黑白图像6.图像切片7.图像大小调整 四、读取视频 前言 目前,我开始学习OpenCV的相关概念和操作。通过今天的学习&#xf…

文章目录

  • 前言
  • 一、OpenCV简介
  • 二、计算机中的图像表达
    • 1.图像表示
    • 2.图像存储
  • 三、基本图像操作
    • 1.创建窗口
    • 2.读取图像
    • 3.显示图像
    • 4.保存图像
    • 5.创建黑白图像
    • 6.图像切片
    • 7.图像大小调整
  • 四、读取视频


前言

  • 目前,我开始学习OpenCV的相关概念和操作。通过今天的学习,我掌握了OpenCV的基础概念与图像操作

一、OpenCV简介

  • OpenCV(开放源代码计算机视觉库)是一个开源的计算机视觉和机器学习软件库。由一系列 C++ 类和函数构成,用于图像处理、计算机视觉领域的算法实现。
  • OpenCV-Python是原始OpenCV C++实现的Python包装器。
  • OpenCV-Python使用Numpy,这是一个高度优化的数据库操作库。所有OpenCV数组结构都转换为Numpy数组。

二、计算机中的图像表达

1.图像表示

  • 像素是图像的基本单元,每个像素存储着图像的颜色、亮度和其他特征。
  • 一系列像素组合到一起就形成了完整的图像。
  • 我们平常接触的图像都是8位数图像,范围从0到255,其中0,代表最黑,1,表示最白。
  • 日常生活中常见的图像是RGB三原色图。RGB图上的每个点都是由红(R)、绿(G)、蓝(B)三个颜色按照一定比例混合而成的。

2.图像存储

  • 在OpenCV中,图像通过Numpy数组进行存储
  • 灰色图像使用二维数组,而彩色图像使用三维数组进行存储
  • 图像的常用属性分别为:shape和dtype,用于访问数组的形状和像素的数据类型
  • 需要注意的是:在OpenCV中,彩色图像以BGR顺序存储

三、基本图像操作

1.创建窗口

  • cv2.namedWindow(winname [,窗口属性])
  • winname指窗口名
  • 窗口属性包括:cv2.WINDOW_AUTOSIZE,cv2.WINDOW_NORMAL;用以指定窗口大小是否能进行调整
    tips:可以在imshow方法中指定窗口名从而省略该步骤
cv.namedWindow('window1',cv.WINDOW_AUTOSIZE) #cv.WINDOW_AUTOSIZE表示不能调整窗口大小
cv.namedWindow('window2',cv.WINDOW_NORMAL) #cv.WINDOW_NORMAL表示可调整窗口

2.读取图像

  • cv2.imread(path [,读取方式])
  • 可以指定读取彩色或灰白图像
img2 = cv.imread('cat1.png',cv.IMREAD_GRAYSCALE) #读为灰度图

3.显示图像

  • cv2.imshow(winname,img)
  • winname:显示图像的窗口名,以字符串类型表示
  • img:要显示的图像
cv.imshow('window2',img)
  • 直接调用该函数会导致显示出现问题,需要结合使用cv.waitKey(),cv.destroyAllWindows()指定绘图停留时间以及释放资源
cv.imshow('window2',img)
cv.waitKey(0) #给图像绘制留下时间
cv.destroyAllWindows() #释放资源

4.保存图像

  • cv2.imwrite(path,img)
  • 将图片保存到指定路径
cv.imwrite('gray.png',img2)

5.创建黑白图像

  • 由于OpenCV使用Numpy数组对图像进行存储,因此我们可以使用Numpy来创建对应的图像数组
import cv2 as cv
import numpy as np
h = 480
w = 480
img = np.zeros((h,w,3),dtype=uint8)
cv.imshow('img',img)
img[:,:,:] = 255
cv.imshow('img1',img)
cv.waitKey(0)
cv2.destroyAllWindows()
  • 以下展示生成随机颜色的图像
h = 480
w = 480
img = np.zeros((h,w,3),dtype=uint8)
img[:,:,:] = np.random.randint(0,256,(h,w,3)) 
cv.imshow('random',random_img) 
cv.waitKey(0) 
cv.destroyAllWindows()

6.图像切片

  • 对图像进行切片相当于对图像对应的Numpy数组进行切片
img = cv.imread('cat1.png')
print(img.shape)y = 70
x = 100
w = 250
h = 250
img1 = img[y:y+w,x:x+h]
cv.imshow('img1',img1)
cv.imshow('img2',img)
cv.waitKey(0)
cv.destroyAllWindows()

tips:需要注意的是,OpenCV里的坐标系和数学中的直角坐标系有区别;h对应的是垂直方向,w对应的是水平方向

7.图像大小调整

  • cv2.resize(img,dsize,dts)
  • 结果返回一个新的图像数组
img = cv.imread('cat1.png')new_img = cv.resize(img,(480,100))
cv.imshow('img',new_img)
cv.waitKey(0)
cv.destroyAllWindows()

四、读取视频

  • 视频是由一帧一帧的图片组合而成,读取视频本质上也是在读取图片
  • cap = cv2.VideoCapture(path)
  • ret,frame = cap.read()
  • 首先创建VideoCapture类的对象,再使用该对象调用read方法读取视频
  • 返回值ret是一个布尔值,用于判断是否读取成功;frame代表一帧图像
cap = cv.VideoCapture(r'D:\AI\code\OpenCV\20221112_09:42:12_1.mp4') #本地读取视频
cap1 = cv.VideoCapture(0) #从摄像头读取视频流
while True:ret,frame = cap.read()if not ret:print("读取结束")breakcv.imshow('frame',frame)# 等待40毫秒并检查按键事件,获取按键的ASCII码,判断按键是否为q键if cv.waitKey(40) & 0xFF==ord('q'):break
cap.release()
cv.destroyAllWindows()

THE END

http://www.dtcms.com/a/481228.html

相关文章:

  • 惠州做棋牌网站建设多少钱户外广告
  • 网站建设费与无形资产微信公众号优秀文案
  • 免费手机建站平台建设和管理环保网站
  • 怎么做网站信息免费咨询医院
  • 接给别人做网站的活做茶歇的网站
  • 用hexo做网站网站别人帮做的要注意什么
  • 网站seo优化网站前端培训出来工资多少
  • 上海公司注册网seo综合查询国产
  • 推广项目网站网站设计步骤图片
  • 淄博网站推广优化有限责任公司属于什么法人
  • 移动网站 pc网站的区别免费wordpress移动主题
  • 惠山区住房和建设厅网站免费推广网站哪家好
  • 好的网站建站公司做网站软件j
  • 山东省济宁市嘉祥县建设局网站WordPress建站布置
  • 怎么管理网站西安效果图制作
  • 新网建立网站网站建设 自学 电子版 pdf下载
  • 深圳专业网站建设制作企业招聘信息发布平台
  • 不得不知道的网站门户网站制作全包
  • 玄圭做网站怎么样wordpress怎么关闭网站
  • 网站app怎么制作教程集团网站设计公司
  • 棋牌网站开发工程师附近做网站
  • p2p网站建设时间制作公司网站用什么软件
  • 网站模块报价龙岩网页定制
  • 设计兼职网站推荐怎么建设好一个外贸购物网站
  • 天津市规划局官方网站建设项目肇东市建设局网站
  • 杭州网站建设招聘网外发加工网站
  • 手机网站吧网站定制功能
  • 济南网站设计开发网站直接访问
  • 国内美妆博主从哪个网站开始做济南做网站个人
  • 常州手机网站效果怎么样做网站页面