• 数字图像处理_基本概念


    1.几何变换可以看成

    图像中物体(或像素)空间位置改变,或者说是像素的移动
    仿射变换和透视变换更直观的叫法可以叫做“平面变换”和“空间变换”或者“二维坐标变换”和“三维坐标变换”.
    图形学的范畴当中,
    缩放和旋转属于线性变换,
    平移变换、旋转变换属于刚体变换,
    刚体变换和线性变换又属于仿射变换,
    而仿射变换也可以看成投影变换的一种
    投影变换定义的是一个可视空间,决定了哪些物体显示,哪些物体不显示,以及物体如何显示。
    01.变换的介绍
        刚性变换、仿射变换、透视变换和非线形变换等
        刚体变换(Rigid Transformation),刚体变换主要是针对旋转和平移进行的一种变换。
        仿射变换(Affine Transformation),仿射变换主要是针对平移、旋转、缩放、剪切等进行的一种变换
        投影变换(Projective Transformation),它可以看为由,的、旋转、缩放、剪切等变换的组合
        非线性变换:如果第一幅图像中的一条直线经过变换后映射到第二幅图像上不再是直线,一般用于图像畸变的配准中
        A、刚体变换:平移、旋转、镜像(即反转)。
        B、仿射变换:平移、旋转、镜像(即反转),缩放。
        C、投影变换:平移、旋转、镜像(即反转),缩放,投影。
        D、非线性变换:平移、旋转、镜像(即反转),投影,扭曲。
       仿射变换(Affine Transformation) 
       仿射变换可以通过一系列的原子变换的复合来实现,
        包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)
    02.转换矩阵  ;在数学上,可以使用矩阵来描述这种变换
    

    2.形态学

    二值图形形态学 
        形态学运算包括:腐蚀运算、膨胀运算、开运算、闭运算、形态学梯度、顶帽运算、黑帽运算
        腐蚀 (Erosion)
        膨胀 (Dilation)
    扩展到灰度图像
    

    3.颜色模型

    RGB格式像素点,会有Red、Green、Blue三个基本像素分量组成
    RGB颜色空间与RGB三色中色调、饱和度、亮度
      色调、饱和度、对比度和亮度
     色调是决定一个像素点中的颜色更偏向于哪一方(RGB)
    饱和度在颜色空间中是起到一个控制RGB组合色的颜色深度  鲜艳程度,也称作纯度
    	  度决定颜色空间中颜色的明暗程度
    HSV颜色模型
       色调H(Hue)  饱和度 S(Saturation)  明度V(Value)
    平滑和锐化
      opencv 改变图像的对比度和亮度
    YUV
     YUV的采样格式  YUV的存储格式
      人体眼睛对亮度分量(Y)敏感,而对色度分量(U和V)不敏感的原理
      YUV的存储格式分为打包格式(packet formats)
      和平面格式(planar formats
    

    4.图像数据通道

     01.图像数据通道-逻辑表达
      代表含义
     N - Batch     N 表示这批图像有几张,
      C - Channel   C 表示通道数 
      H - Height    H 表示图像在竖直方向有多少像素,
      W - Width     W 表示水平方向像素数,
    
     NCHW, CHW 又称“channels_first”是nvidia cudnn库原生支持的数据模式;
                         在GPU中,常使用NCHW格式计算卷积
    	 NCHW 则必须等所有通道输入准备好才能得到最终输出结果,需要占用较大的临时空间。
    	 NCHW 则是 Nvidia cuDNN 默认格式
    	 GPU内存带宽较大并且并行性强的特点,其访存与计算的控制逻辑相对简单	 
    	PyTorch:NCHW
    	 
     NHWC, HWC 又称“channels_last”,是CPU指令比较适合的方式
        N代表数量, C代表channel,H代表高度,W代表宽度 NCHW 其实代表的是[W H C N]
       OpenCV在设计时是在CPU上运算的,所以默认 HWC 格式
    
    02.图像数据通道-物理存储
      逻辑表达上是几维的数据,
       在计算机中存储时都是按照1D来存储的。
       NCHW和NHWC格式数据的存储形式
       假定N=1,那么NCHW和NHWC数据格式可以很直接的这样表
    

    5.Python opencv2

       cv2.imread 
       默认加载类型是cv2.IMREAD_COLOR:cv2.IMREAD_COLOR=1:读入一副彩色图像,将图像转化为三通道BGR彩色图像
        
     输出: 图片读出来的格式是BGR,不是我们最常见的RGB格式
     cv2.cvtColor
      cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式
      cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片
    
    cv2.warpPerspective() 叫做透视变换。
    cv2.warpPerspective()用于解决cv2.warpAffine()不能处理视场和图像不平行的问题。
    warpPolar函数用于实现图像的极坐标变换
    cv2.warpAffine()不能处理视场和图像不平行的问题
    cv2.warpAffine      采用2x3变换矩阵, 
     cv2.warpPerspective 采用3x3变换矩阵作为输入
    
     cv2.addWeighted  
       addWeighted()函数是进行线性加权的
       图像混合(融合,可以设置图片的透明度 
       像素深度是指存储每个像素所需要的比特数
    

    参考

      图解NCHW与NHWC数据格式  https://my.oschina.net/u/4350128/blog/4672943
  • 相关阅读:
    Android内存泄漏检测利器:LeakCanary
    android webview js交互 第一节 (java和js交互)
    Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发
    Android Volley 框架的使用(一)
    Android 6.0动态添加权限
    Android中使用OKHttp上传图片,从相机和相册中获取图片并剪切
    Dom对象的研究
    js 数据类型具体分析
    js 1.变量提升 2.条件语句 3.循环语句 4.加号+的使用
    js 的运算
  • 原文地址:https://www.cnblogs.com/ytwang/p/14794418.html
Copyright © 2020-2023  润新知