Python中的cv2使用

python 中cv2的使用


引言:

因为最近想入门一下机器学习的知识,目前以李航博士的《统计学学习》为教材自学ing,然后再具体算法复现上遇到了第一个坑,就是图像的Hog特征提取(hog扫盲),然后触摸到的python 的cv2库。


首先是对应库的安装

作为入门,当然从库的安装开始,pip肯定是要装的

sudo apt install python3-pip

然后就是安装cv2的安装库了,当然直接sudo apt-get install cv2肯定是不定的了,那么我们到底需要的是什么库呢?
百度一下后发现是opencv-python,因而敲入命令:

sudo pip install opencv-python

插一下Ubuntu中 Visual Studio Code的安装

其实很简单,直接到官网下载.deb的安装文件,然后敲键盘:

sudo apt install /home/ming/Downloads/code_1.41.1-1576681836_amd64.deb

就ok了


初识cv2

首先随便搞一张照片,当然扒自:80行Python实现-HOG梯度特征提取
Python中的cv2使用_第1张图片

然后用一段最simple的代码来认识这个函数

import cv2
import numpy as np
width = 100
height = 200
img = cv2.imread('/home/ming/Desktop/person_037.jpeg')
cv2.imshow('', img)
cv2.waitKey(100)==27   //代表等待100ms,若输入键盘的值等于ASCII码27即输入esc,则关闭
cv2.destroyAllWindows()

然后执行的模样就是这样的:
Python中的cv2使用_第2张图片一步一步的分析:读取文件代码:

img = cv2.imread('/home/ming/Desktop/test1.jpg')

接下来是改变图片的大小:

img = cv2.resize(img,(width, height),interpolation=cv2.INTER_AREA)

其中:
cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)
scr:原图

dsize:输出图像尺寸

fx:沿水平轴的比例因子

fy:沿垂直轴的比例因子

interpolation:插值方法

img.shape返回img的长宽信息

import cv2
import numpy as np
width = 1400
height = 700
img = cv2.imread('/home/ming/Desktop/test1.jpg',0)
img = cv2.resize(img,(width, height),interpolation=cv2.INTER_AREA) # 使用imread读入图像(BGR顺序), 使用IMGREAD_GRAYSCALE 使得读入的图片为灰度图
print(img.shape)//打印img的形状,返回width和height

总结

因为是为了Hog特整体提取,所以上述一切都是为了图像处理,最后代码整理为一个函数

#coding=utf-8
#create by Ming 2020.1.15
import cv2
import numpy as np
######################################
#readImg:读取图片,输入为图片的绝对地址
#函数作用:读取图片并归一化处理
######################################
def readImg(adress):
    img = cv2.imread(adress,cv2.IMREAD_GRAYSCALE)#使用灰度读取图片,正常读取图片参数带0即可
    img = np.sqrt(img / float(np.max(img))) #归一化处理,让每一个数值都小于1,目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音。
    cv2.imshow("",img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

readImg('/home/ming/Desktop/person_037.jpeg')

你可能感兴趣的:(机器学习)