opencv学习笔记(2)

首先是最简单的一串代码,显示一张图片。

# coding=UTF-8
import cv2 as cv
import numpy as np

def access_pixels(image):
    print(type(image)) #打印出图片的类型
    print(image.shape) #打印出图片垂直尺寸、图片水平尺寸、图片通道数(如果有的话)
    print(image.size) #打印出图片的大小
    print(image.dtype) #打印出数组数据类型


scr = cv.imread("D:/picture/2.jpg") #读取D盘的picture文件夹中的2.jpg文件
cv.imshow("input image",scr) #打开一个叫“input image”的窗口显示scr
access_pixels(scr)
cv.waitKey(0)
cv.destroyAllWindows()

看一下效果:
opencv学习笔记(2)_第1张图片
然后我们再对其中的几个函数一个一个地过一遍,看看修改他们的参数后,会发生什么:

①cv2.imread()

cv2.imread()有两个参数,第一个参数是图片的路径,第二个参数是一个标识,它用来指定图像的读取方式。
默认情况下,即使图像文件为灰度格式,imread()函数也会返回BGR格式的图像
下面列出的选项可作为cv2.imread()函数的第二个参数:

IMREAD_ANYCOLOR = 4
IMREAD_ANYDEPTH = 2
IMREAD_COLOR = 1 #如果第二个参数不写的话,默认使用这个
IMREAD_GRAYSCALE = 0
IMREAD_LOAD_GDAL = 8
IMREAD_UNCHANGED = - 1

一般来说,1,0,-1三个用的比较多(至少在我看来…)
什么意思呢?我们试一试,这边我们选用了一张彩色的图片:

# coding=UTF-8
import cv2 as cv
import numpy as np

def access_pixels(image):
    print(type(image))
    print(image.shape)
    print(image.size)
    print(image.dtype)
    print('-----------')

scr = cv.imread("D:/picture/2.jpg")
cv.imshow("input image",scr)
scr_COLOR = cv.imread("D:/picture/2.jpg",1)
cv.imshow("input image_COLOR",scr_COLOR)
scr_GRAYSCALE = cv.imread("D:/picture/2.jpg",0)
cv.imshow("input image_scr_GRAYSCALE",scr_GRAYSCALE)
scr_UNCHANGED = cv.imread("D:/picture/2.jpg",-1)
cv.imshow("input image_UNCHANGED",scr_UNCHANGED)
access_pixels(scr)
access_pixels(scr_COLOR)
access_pixels(scr_GRAYSCALE)
access_pixels(scr_UNCHANGED)
cv.waitKey(0)
cv.destroyAllWindows()

效果如下:opencv学习笔记(2)_第2张图片

而用灰度图就是这样的效果:
opencv学习笔记(2)_第3张图片
大家自己操作一下,对比对比,就很容易发现:

  • 如果没写第二个参数,默认参数是IMREAD_COLOR,即1。
  • cv2.IMREAD_COLOR : 默认使用该种标识。加载一张彩色图片,不管它原来是黑白的还是彩色的。
  • cv2.IMREAD_GRAYSCALE : 加载一张灰度图。
  • cv2.IMREAD_UNCHANGED : 加载图像它本身,灰度图就是灰度图,彩色图就是彩图。

②cv2.namedWindow()

cv2.namedWindow()函数有两个参数。
参数1:新建的窗口的名称。
参数2:窗口的标识,默认值是WINDOW_AUTOSIZE。
参数2有3种可选择的参数,分别是:

  • WINDOW_AUTOSIZE:窗口大小自动适应图片大小,并且不可手动更改。
  • WINDOW_NORMAL:用户可以改变这个窗口大小。
  • WINDOW_OPENGL:窗口创建的时候会支持OpenGL。
    代码就不上了,比较简单。

③cv2.imshow()

cv2.imshow()函数有两个参数。
参数1:需要载入的图片的路径名。
参数2:加载图像的颜色类型。若为1,则返回彩图;若为0,返回灰图。

你可能感兴趣的:(opencv学习,opencv,python,计算机视觉)