• 视频处理之灰度图


    欲观原文,请君移步

    灰度图概念

    灰度图 ,Gray Scale Image 或是Grey Scale Image,又称灰阶图。把白色与黑色之间按对数关系分为若干等级,称为灰度。8位像素灰度分为256阶。用灰度表示的图像称作灰度图。除了常见的卫星图像、航空照片外,许多地球物理观测数据也以灰度表示。除了常见的卫星图像、航空照片外,许多地球物理观测数据也以灰度表示。以位场图像为例,把位场表示为灰度图,需要将位场观测值灰度量化,即将场的变化范围转换成256阶的灰度范围。由于位场的动态变化范围非常大,磁场可达数万个纳特,重力场也可能在数百个重力单位内变化,所以在显示为图像前通常需要对位场观测值进行拉伸或压缩。

    灰度图计算

    将彩色图像转换为灰度图像的方法有两种:

    • 第一种方法是令RGB三个分量的数值相等。输出后便可以得到灰度图像。

    • 第二种方法是将RGB转换为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度,所以只输出Y分量,得到图像就是灰度图像。

    本文采用第二种方法,采用xilinx FPGA提供的IP。

    算法基础

    官方给的RGB888转YCrCb的算法公式:

    Y = 0.299R + 0.587G + 0.114B

    Cb = 0.568(B-Y) + 128 = -0.172R -0.339G + 0.511B + 128

    Cr = 0.713(R -Y) + 128 = 0.511R - 0.428G - 0.083B + 128

    矩阵表示如下

    整数算法

    在实际应用时,希望避免低速的浮点运算,所以需要整数算法。

    注意到系数都是3位精度,我们可以将它们缩放1000倍来实现整数运算算法:

    Y = (R299 + G587 + B*114 + 500) / 1000。

    RGB一般是8位精度,现在缩放1000倍,所以上面的运算是32位整型的运算。注意后面那个除法是整数除法,所以需要加上500来实现四舍五入。

    就是由于该算法需要32位运算,所以该公式的另一个变种很流行(只扩大100倍):

    Y = (R30 + G59 + B*11 + 50) / 100。

    FPGA实现算法

    上面的整数算法已经很快了,但是有一点仍制约速度,就是最后的那个除法。FPGA实现出发很消耗资源很且很慢,移位比除法快多了,所以可以将系数缩放成2的整数幂。由于FPGA实现小数无法计算,所以进行变换(将小数扩大256,最后结果再除以256),公式如下

    Y = ((77R + 150G + 29*B)>>8)

    Cb = ((-43B - 85G + 128*B)>>8) + 128

    Cr = ((128R - 107G - 21*B)>>8) + 128

    灰度图实现

    matlab实现结果

    
    
    X=imread(I); %读入图片
    
    I=mat2gray(X);%将数值矩阵X转换为灰度图像
    
    figure,imshow(I); %显示转换后的灰度图像
    
    

    FPGA实现

    如果你对实现过程感兴趣,可以参考链接,网友们都写的很好,小编会后面出一个各种视频格式转换的通用模块,敬请关注。

    使用IP如下图所示,支持AXI Stream接口(根据视频的分辨率进行配置即可)。

    RGB2YCrcb IP硬件位置

    实现结果如下图

    参考链接

    https://blog.csdn.net/dengxf01/article/details/53287227

    https://www.cnblogs.com/huangwei0521/p/12382238.html

    https://www.cnblogs.com/ninghechuan/p/6978104.html

  • 相关阅读:
    shell脚本day06-sed
    shell脚本day05-交互式输入与for语句
    shell脚本day04-if语句
    shell脚本day04-grep与正则表达式
    shell脚本day03-编程原理
    shell脚本day02-重定向与管道符
    编程原理大致介绍
    进程管理
    Linux网络
    shell脚本--grep以及正则表达式
  • 原文地址:https://www.cnblogs.com/xiguazai/p/13047742.html
Copyright © 2020-2023  润新知