基于FPGA的目标颜色识别追踪一——图像预处理

为了解决后续对于固定颜色的识别,需要对OV5640摄像头采集的图像进行预处理。图像预处理灰度处理常见24位的 RGB888一个像素点包含1600多万种颜色,而灰度图像则为8位的深度图像。rgb2gray主要有以下几种办法:分量法,平均值法,公式法,和查找表法。module rgb2gray#(parameter PROC_METHOD = "FORMULA"//"AVERAGE" "FORMULA" "LUT")(input clk,input rerset_p,input rgb_v
摘要由CSDN通过智能技术生成

为了解决后续对于固定颜色的识别,需要对OV5640摄像头采集的图像进行预处理。预处理的思路为rgb2YCbCr
corrode
expand
之后对预处理的图片进行边界提取。

图像预处理

下面给出了常见的图像预处理的手段(灰度处理,中值滤波,高斯滤波,RGB2YCbCr,腐蚀,膨胀,边界提取等),部分给出了相应的代码。

灰度处理

常见24位的 RGB888一个像素点包含1600多万种颜色,而灰度图像则为8位的深度图像。rgb2gray主要有以下几种办法:分量法,平均值法,公式法,和查找表法。

module rgb2gray
#(parameter PROC_METHOD = "FORMULA"
//"AVERAGE" "FORMULA" "LUT"

)
(input clk,
input rerset_p,
input rgb_valid,
input rgb_hs,
input rgb_vs,
input [7:0]red_8b_i,
input [7:0]green_8b_i,
input [7:0]blue_8b_i,
output reg gray_8b_o,
output reg gray_valid,
output reg gray_hs,
output reg gray_vs,

)

generate
if (PROC_METHOD = "AVERAGE") begin:PROC_AVERAGE
平均值法
wire [9:0]sum;
reg [15:0]gray_r;

assign sum = red_8b_i + green_8b_i + blue_8b_i;

always@(posedge clk or posegde reset_p)begin
	if(reset_p) gray_r <= 16'b0;
	else if(rgb_valid) gray_r <=(sum<<6) + (sum<<4) + (sum<<2) +sum;
	else gray_r <= 16'b0;
end

assign gray_8b_o = gray_r;

always@(posedge clk)begin
	gray_valid <= rgb_valid;
	gray_hs <= rgb_hs;
	gray_vs <= rgb_vs;
	
end
	
else if(PROC_METHOD = "FORMULA") begin:PROC_FORMULA
公式法
    reg [15:0]sum;
    wire[15:0]red_x77;
    wire[15:0]green_x150;
    wire[15:0]blue_x29;
    
    assign red_x77    = (red_8b_i  << 6) + (red_8b_i  << 3) + (red_8b_i  << 2) + red_8b_i;
    assign green_x150 = (green_8b_i<< 7) 
  • 6
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值