FPGA图像处理

一、灰度化

1、RGB2GRAY公式

RGB图转灰度图公式为
G r a y = R × 0.299 + G × 0.587 + B × 0.114 Gray = R\times0.299 + G\times0.587 + B\times0.114 Gray=R×0.299+G×0.587+B×0.114
一般地,在FPGA中采用用整型移位的方式进行计算。
不同的整型值大小对应不同的转化精度,2位至20位的精度转化公式如下:
G r a y = ( R × 1                 + G × 2                 + B × 1 ) > > 2 G r a y = ( R × 2                 + G × 5                 + B × 1 ) > > 3 G r a y = ( R × 4                 + G × 10              + B × 2 ) > > 4 G r a y = ( R × 9                 + G × 19              + B × 4 ) > > 5 G r a y = ( R × 19              + G × 37              + B × 8 ) > > 6 G r a y = ( R × 38              + G × 75              + B × 15 ) > > 7 G r a y = ( R × 76              + G × 150           + B × 30 ) > > 8 G r a y = ( R × 153           + G × 300           + B × 59 ) > > 9 G r a y = ( R × 306           + G × 601           + B × 117 ) > > 10 G r a y = ( R × 612           + G × 1202        + B × 234 ) > > 11 G r a y = ( R × 1224        + G × 2405        + B × 467 ) > > 12 G r a y = ( R × 2449        + G × 4809        + B × 934 ) > > 13 G r a y = ( R × 4898        + G × 9618        + B × 1868 ) > > 14 G r a y = ( R × 9797        + G × 19235     + B × 3736 ) > > 15 G r a y = ( R × 19595     + G × 38469     + B × 7472 ) > > 16 G r a y = ( R × 39190     + G × 76939     + B × 14943 ) > > 17 G r a y = ( R × 78381     + G × 153878 + B × 29885 ) > > 18 G r a y = ( R × 156762 + G × 307757 + B × 59769 ) > > 19 G r a y = ( R × 313524 + G × 615514 + B × 119538 ) > > 20 Gray = (R\times1 \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,+ G\times2 \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,+ B\times1) >> 2 \\ Gray = (R\times2 \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,+ G\times5 \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,+ B\times1) >> 3 \\ Gray = (R\times4 \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,+ G\times10 \,\,\,\,\,\,\,\,\,\,\,\,+ B\times2) >> 4 \\ Gray = (R\times9 \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,+ G\times19 \,\,\,\,\,\,\,\,\,\,\,\,+ B\times4) >> 5 \\ Gray = (R\times19 \,\,\,\,\,\,\,\,\,\,\,\,+ G\times37 \,\,\,\,\,\,\,\,\,\,\,\,+ B\times8) >> 6 \\ Gray = (R\times38 \,\,\,\,\,\,\,\,\,\,\,\,+ G\times75 \,\,\,\,\,\,\,\,\,\,\,\,+ B\times15) >> 7 \\ Gray = (R\times76\,\,\,\,\,\,\,\,\,\,\,\, + G\times150 \,\,\,\,\,\,\,\,\,+ B\times30) >> 8 \\ Gray = (R\times153\,\,\,\,\,\,\,\,\, + G\times300\,\,\,\,\,\,\,\,\, + B\times59) >> 9 \\ Gray = (R\times306 \,\,\,\,\,\,\,\,\,+ G\times601\,\,\,\,\,\,\,\,\, + B\times117) >> 10 \\ Gray = (R\times612\,\,\,\,\,\,\,\,\, + G\times1202 \,\,\,\,\,\,+ B\times234) >> 11\\ Gray = (R\times1224 \,\,\,\,\,\,+ G\times2405\,\,\,\,\,\, + B\times467) >> 12\\ Gray = (R\times2449 \,\,\,\,\,\,+ G\times4809 \,\,\,\,\,\,+ B\times934) >> 13\\ Gray = (R\times4898 \,\,\,\,\,\,+ G\times9618 \,\,\,\,\,\,+ B\times1868) >> 14\\ Gray = (R\times9797 \,\,\,\,\,\,+ G\times19235 \,\,\,+ B\times3736) >> 15\\ Gray = (R\times19595 \,\,\,+ G\times38469\,\,\, + B\times7472) >> 16\\ Gray = (R\times39190 \,\,\,+ G\times76939\,\,\, + B\times14943) >> 17\\ Gray = (R\times78381 \,\,\,+ G\times153878 + B\times29885) >> 18\\ Gray = (R\times156762 +G\times307757 + B\times59769) >> 19\\ Gray = (R\times313524 + G\times615514 + B\times119538) >> 20\\ Gray=(R×1+G×2+B×1)>>2Gray=(R×2+G×5+B×1)>>3Gray=(R×4+G×10+B×2)>>4Gray=(R×9+G×19+B×4)>>5Gray=(R×19+G×37+B×8)>>6Gray=(R×38+G×75+B×15)>>7Gray=(R×76+G×150+B×30)>>8Gray=(R×153+G×300+B×59)>>9Gray=(R×306+G×601+B×117)>>10Gray=(R×612+G×1202+B×234)>>11Gray=(R×1224+G×2405+B×467)>>12Gray=(R×2449+G×4809+B×934)>>13Gray=(R×4898+G×9618+B×1868)>>14Gray=(R×9797+G×19235+B×3736)>>15Gray=(R×19595+G×38469+B×7472)>>16Gray=(R×39190+G×76939+B×14943)>>17Gray=(R×78381+G×153878+B×29885)>>18Gray=(R×156762+G×307757+B×59769)>>19Gray=(R×313524+G×615514+B×119538)>>20

2、RGB2GRAYFPGA程序
module rgb2gray(
    input sys_clk,

    input [7:0] img_r,
    input [7:0] img_g,
    input [7:0] img_b,
    input       input_valid,

    output reg [7:0] img_gray,
    output reg       img_gray_valid
    );
    
reg [7:0] gray_data_reg;

always @(posedge sys_clk ) begin
    img_gray <= (img_r*1+img_g*1+img_b*2)>>2;
    img_gray_valid <= input_valid;
end
3、效果

结果

二、RGB888转YCbCr

RGB转YCbCr
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值