美国淘宝代购网站建设江阴百度推广公司
前言
最近写代码总是提笔忘api,因为图像处理代码写的比较多,所以想着把一些常用的opencv的api,包括numpy的api做一个记录,后面再忘记的时候,就不用去google挨个搜索了,只需要在自己的博客中一查就全知道了。这个博客也会持续性一直更新,主要把漏掉的api挨个补齐。
api接口和示例代码
1、图片基操
这类就不需要写api接口说明了,直接上代码
import cv2
import numpy as np## 读取图片基本信息
img = cv2.imread("test.jpg")
shape = img.shape
w = shape[1] #宽度
h = shape[0] #高度
c = shape[2] #维度imgSize = img.size ##获取图片像素总和ty = img.dtype ##获取图像的数据类型,一般为uint8#生成空白图片
img_zero = np.zeros(img.shape,np.uint8)
# 第一个是高,第二个是宽
img_fix = np.zeros((300,500,3),np.uint8)#访问像素值
img[50,100] = (0,0,255)
#第一个是高,第二个是宽
img[0:100,100:200,0] = 255
img[100:200,200:300,1] = 255
img[200:300,300:400,2] = 255img_roi = img[0:100, 0:200]#分离合并通道
b , g , r = cv2.split(img)
# b = cv2.split(img)[0]
# g = cv2.split(img)[1]
# r = cv2.split(img)[2]
merged = cv2.merge([b,g,r])#颜色空间转换
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #转为灰度图
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 转为hsv通道
img = cv2.cvtColor(img, cv2.COLOR_BGR2LAB) ##Lab颜色空间中的L分量用于表示像素的亮度,取值范围是[0,100],表示从纯黑到纯白
2.图像resize
img = cv2.imread("01.jpg")img_r = cv2.resize(img,(300,100),cv2.INTER_AREA)
hight, width = img.shape[0:2]
img2 = cv2.resize(img,(width,hight))
-
接口原型:cv2.resize(src , dsize , dst = None , fx = None , fy = None , interpolation = None)
-
参数:
– src:输入的原始图像
– dsize:输出图像的尺寸大小(元组方式传入)
– dst:输出的图像
– fx:沿水平轴缩放的比例因子
– fy:沿垂直轴缩放的比例因子
– interpolation:插值方式(1)cv2.INTER_NEAREST :最近邻插值(2)cv2.INTER_LINEAR :双线性插值(默认)(3)cv2.INTER_AREA :使用像素区域关系进行重采样(4)cv2.INTER_CUBIC :4x4像素邻域的双3次插值(5)cv2.INTER_LANCZOS4 :8x8像素邻域的Lanczos插值
为了最好的缩放效果,缩小推荐使用 “cv2.INTER_AREA”; 扩大推荐使用 “cv2.INTER_CUBIC”