Task_2

色彩空间转换

图像色彩空间

  1. 常见色彩空间:HSV RGB YCrCb(Y分量表示信息,CrCb可以被压缩)

  2. 图像色彩转换:信息传递与损失、过程可逆与否

  3. 函数与参数:cv.cvtColor(src,code[,dst[,dstCn]])->dst

    1. src表示输入图像,类型CV_8U、CV_32F

    2. code:cv.COLOR_BGR2GRAY

      ​ cv.COLOR_BGR2HSV

      ​ cv.COLOR_BGR2YCrCb

图像对象的创建与赋值

图像对象属性

  1. 图像宽高image.shape
  2. 图像深度image
  3. 图像数据类型image.dtype
  4. 图像通道

Numpy数据包函数

创建图像

import numpy as np

np.array([[1,2],[3,4]],dtype=np.uint8)

常用函数

np.zeros ->创建一个黑色背景的图像

np.zeros_like

np.ones

图像赋值

m[:] = (a,b,c)

像素的读写操作

像素与分辨

像素实际大小:dpi x inches = 像素总数

dpi:每英寸的点数目 - 针对打印

ppi:每英寸的像素数目 - 针对图像分辨率

OpenCV中像素

  • 灰度图像排序:像素点只有一个通道
  • 彩色图像排序:像素点有三个通道

像素访问与遍历

像素遍历本质就是numpy数组访问

假设变量image

  • 访问图像维度信息:image.shape
  • 图像访问像素:image[row,col]
  • 图像赋值像素:image[row,col] = (b,g,r)

像素读写

彩色图像

  • 写:b,g,r = image[row, col]
  • 读:image[row, col] = (255-b, 255-g, 255-r)

灰度图像

  • 写:pv = image[row, col]

  • 读:image[row, col] = 255-pv

图像算术操作

算术操作 - 加减乘除

  • img1[row, col] + img2[row, col] = dst[row, col]
  • img1[row, col] - img2[row, col] = dst[row, col]
  • img1[row, col] * img2[row, col] = dst[row, col]
  • img1[row, col] / img2[row, col] = dst[row, col]
  • 加法,如何保证不越界:saturate(src1 + src2)-> 0~255

支持函数

  • cv.add(src1, src2[,dst[,mask[,dtype]]]) ->dst

  • cv.subtract(src1, src2[,dst[,mask[,dtype]]]) ->dst

  • cv.multiply(src1, src2[,dst[,scale[,dtype]]]) ->dst

  • cv.divide(src1, src2[,dst[,scale[,dtype]]]) ->dst

  • mask参数:表示模板,0区域遮罩,1区域露出可以相加(限制做运算的区域)

你可能感兴趣的:(python,opencv,numpy)