opencv学习(一)图像的基本操作

这篇具有很好参考价值的文章主要介绍了opencv学习(一)图像的基本操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 数据的读取

  • cv2.IMREAD_COLOR:彩色图像

  • cv2.IMREAD_GRAYSCALE:灰度图像

import cv2 
img = cv2.imread('E:/opencv/open-cv/2-7/cat.jpg',1)

cv2.imshow("img", img)
cv2.waitKey(0)    
cv2.destroyAllWindows() 
  • cv2.imread()读取图片,当括号里面是1时,也就是替代了cv2.IMREAD_COLOR,得到彩色图

opencv学习(一)图像的基本操作
  • cv2.imread()读取图片,当括号里面是0时,替代了cv2.IMREAD_GRAYSCALE,得到灰度图

opencv学习(一)图像的基本操作
  • cv.inshow()函数为创建一个展示窗口,括号里面分别为图片名字读取哪个图片

  • cv2.waitKey(0) 等待时间多久,其中括号中0表示任意键可以中止显示图片。

  • cv2.destroyAllWindows() 关闭窗口。

2.opencv图片颜色转换

import cv2 
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline 

img=cv2.imread('E:/opencv/open-cv/2-7/cat.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("img_gray", img_gray)
cv2.waitKey(0)    
cv2.destroyAllWindows() 
  • 由于cv2读取的图像格式为BGR,而Matplotlib画的是RGB,因此需要对格式进行转换。

cv2.COLOR_BGR2GRAY转化成灰度图,cv2.COLOR_BGR2RGB转换成RGB图,cv2.COLOR_BGR2HSV转换成HSV图。

其中HSV分别表示如下,转换图片也如下图所示:

  • H - 色调

  • S - 饱和度

  • V值(强度)

opencv学习(一)图像的基本操作

3.图像保存

cv2.inwrite('cat.png',img_gray)
img_gray.type()
  • 只需要输入cv2.inwrite()函数即可保存图像。

  • img_gray.type()可以查看数据类型

4.视频图像的读取

vc = cv2.VideoCapture('E:/opencv/open-cv/2-7/test.mp4')
  • cv2.VideoCapture()函数用来捕捉摄像头,控制不同的设备。

if vc.isOpened():
    open, frame =vc.read()
else:
    open = False
print(frame)
  • 检查视频是否读取错误,其中open只有两个值要么True,要么是Falseframe为读取一帧一帧的值。

while open:
    ret, frame = vc.read()
    #print(ret)
    if frame is None:
        break
    if ret == True:
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        cv2.imshow('result',gray)
        if cv2.waitKey(20)& 0xFF==27:
            break

vc.release()    
cv2.destroyAllWindows()
  • 其中cv2.waitKey(20)& 0xFF==27,这句就是如果期间有按键按下返回的值就是按下按键的ASCII值,就比如esc键的ASCII值是27,cv2.waitKey(20) & 0xFF==27就是当按下按键是esc的时候返回true。0xFF意思是16进制的FF也就是八位2进制数1111 1111,如果引入& 0xFF==27 那么得出的结果永远是后八位,这样就可以排除其他按键的干扰

  • vc.release() 释放硬件资源。

5.截取图像操作

import cv2 
img = cv2.imread('E:/opencv/open-cv/2-7/dog.jpg',1)
dog = img[0:200,0:200]
cv2.imshow("img", dog)
cv2.waitKey(0)    
cv2.destroyAllWindows() 

截取狗狗图像对比如下:

opencv学习(一)图像的基本操作

原始狗狗图像

opencv学习(一)图像的基本操作

截取的狗狗图像

6.提取颜色通道

  • 其中一张图片b,g,r的shape值是一样的。利用cv2.merge((b,g,r))函数是可以重构图像颜色通道。

b,g,r = cv2.split(img)
  • 只保留一个通道。b,g,r分别代号为0,1,2,下面保留r通道。

img1 = img.copy()
img1[:,:,0]=0
img1[:,:,1]=0
cv2.imshow('r',img1)
opencv学习(一)图像的基本操作

只保留R通道

7.图像边界填充

#边界填充
top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)

replicate = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REPLICATE)
reflect = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REFLECT)
reflect_101 = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REFLECT_101)
wrap = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_WRAP)
constant = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_CONSTANT)

#绘制子图
plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL')
plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title("REPLICATE")
plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT')
plt.subplot(234), plt.imshow(reflect_101, 'gray'), plt.title("REFLECT_101")
plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP')
plt.subplot(236), plt.imshow(constant, 'gray'), plt.title("CONSTANT")

plt.show()
  • borderType:图像填充的方法。

  • BORDER_REPLICATE:复制法,也就是复制最边缘像素。

  • BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制

  • BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称。

  • BORDER_WRAP:外包装法。

  • BORDER_CONSTANT:常量法,常数值填充,需要在设置一个value值,已显示填充的颜色。

展示图如下:文章来源地址https://www.toymoban.com/news/detail-451681.html

opencv学习(一)图像的基本操作

到了这里,关于opencv学习(一)图像的基本操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV基本操(IO操作,读取、显示、保存)

    参数: 要读取的图像 读取图像的方式: cv.IMREAD*COLOR :以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1 cv.IMREAD*GRAYSCALE :以灰度模式加载图像 标志: 0 cv.IMREAD_UNCHANGED :包括alpha通道(透明通道)的加载图像模式。 标志: -1 可以使用 1、0或者

    2024年02月10日
    浏览(68)
  • OpenCV基本操作——图像的基础操作

    注:opencv图像坐标系中,左上角是原点,y轴向下,x轴向右,单位像素点 有时需要在B,G,R通道图像上单独工作。在这种情况下,需要将BGR图像分割成单个通道。或者在其他情况下,可能需要将这些单独的通道合并到BGR图像 opencv中有150多种颜色空间转换方法。最广泛使用的转

    2024年02月13日
    浏览(96)
  • 【笔记】OpenCV图像基本操作

    目录 一、图像属性 1.1图像格式 1.2图像尺寸 1.3图像分辨率和通道 1.4图像直方图 1.5图像颜色空间 二、基本操作 2.1 图像读取 cv2.imread() 2.2 图像的显示 cv2.imshow() 2.3 图像的保存 cv2.imwrite() 2.4 用matplotlib显示图像 plt.imshow() 2.5 视频读取 cv2.VideoCapture() 2.6 图像截取、颜色通道提取

    2024年02月03日
    浏览(505)
  • Opencv+Python图像基本操作

    目录 图像的读取、显示和保存 获取图像属性  图像截取  绘图功能 画线 画矩形 画圆圈 画椭圆          画多边形 向图像添加文本 cv2.imread() ,  cv2.imshow() ,  cv2.imwrite()分别表示读取图片,显示图片,写入图片   retval = cv2.imread(文件名 [,显示控制参数]) cv2.IMREAD_UNCHANGED:不改

    2024年02月04日
    浏览(55)
  • opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)

    opencv常用 读视频函数 cv2.VideoCapture 、 cv2.VideoCapture.get 等,可以参考这里 opencv常用 写视频函数 cv2.VideoWriter 等可以参考这里 ,其中视频格式可以参考这里 videoCapture.read() 是按帧读取视频, ret,frame 是获 .read() 方法的两个返回值。其中 ret 是布尔值,如果读取帧是正确的则返回

    2023年04月08日
    浏览(100)
  • C# 使用OpenCV基本图像操作功能

    OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。C#在上位机开发中比较常用,有些项目需要在上位机上加入一些机器视觉相关的功能,在下面简单介绍了C#中使用OpenCV库的方法。 在管理NuGet包中,搜索OpenCvSharp4,安装

    2024年02月15日
    浏览(66)
  • Python Opencv实践 - 基本图像IO操作

       

    2024年02月14日
    浏览(61)
  • OpenCV基本图像处理操作(十)——图像特征harris角点

    角点 角点是图像中的一个特征点,指的是两条边缘交叉的点,这样的点在图像中通常表示一个显著的几角。在计算机视觉和图像处理中,角点是重要的特征,因为它们通常是图像中信息丰富的区域,可以用于图像分析、对象识别、3D建模等多种应用。 角点的识别可以帮助在进

    2024年04月23日
    浏览(64)
  • opencv 图像和视频处理的基本操作(python)

    原图:   1 图片的获取 主要通过cv2.imread(src)函数进行获取 2 图片的显示 3 ROI区域(图片截取) 4 图片的RGB通道划分 注意cv2.imread()获取的图片通过顺序为BGR,而非RGB,即B为0,G为1,R为2  保留R通道  保留G通道   保留B通道   5 RGB通道合成   6 边界填充 主要是通过cv2.copyMakeBo

    2023年04月21日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包