一。 sobel简介
一句话可以概况为,分别求水平与竖直梯度,然后求平方和再开方(近似的话就直接求绝对值之和),最后与设定的阈值进行比较,大于的话就赋值为0,小于的话就赋值为255
x方向梯度dx的求法:3*3的图像矩阵与下面的矩阵在对应位置相乘然后相加
y方向梯度dy的求法:同上
二。 代码实现
这里采用近似计算g = |dx| + |dy|,正负号分开计算,然后用大的数减去小的数
reg[10:0] sobel_px ,sobel_nx;reg[10:0] sobel_py ,sobel_ny;
wire[10:0] sobel_x;wire[10:0] sobel_y;
wire[7:0] sobel_data;
//x方向的梯度assign sobel_x = (sobel_px 》 sobel_nx) ? (sobel_px - sobel_nx) : (sobel_nx - sobel_px);//y方向的梯度assign sobel_y = (sobel_py 》 sobel_ny) ? (sobel_py - sobel_ny) : (sobel_ny - sobel_py);assign sobel_data = (sobel_x + sobel_y 》 ‘d135) ? ’d0 : ‘d255;
always@(posedge clk_9m or negedge rst)begin if(rst == 1’b0) begin sobel_px 《= ‘d0; sobel_nx 《= ’d0; end else if(cur_x 》= ‘d100 && cur_x 《= ’d199 && cur_y 》= ‘d50) begin sobel_nx 《= data_line_11 + data_line_21 + data_line_21 + data_line_31; sobel_px 《= data_line_13 + data_line_23 + data_line_23 + data_line_33; end else begin sobel_nx 《= ’d0; sobel_px 《= ‘d0; endend
always@(posedge clk_9m or negedge rst)begin if(rst == 1’b0) begin sobel_py 《= ‘d0; sobel_ny 《= ’d0; end else if(cur_x 》= ‘d100 && cur_x 《= ’d199 && cur_y 》= ‘d50) begin sobel_py 《= data_line_11 + data_line_12 + data_line_12 + data_line_13; sobel_ny 《= data_line_31 + data_line_32 + data_line_32+ data_line_33; end else begin sobel_ny 《= ’d0; sobel_py 《= ‘d0; endend
苹果与谷歌之争谁能笑到最后
基于APC芯片和光耦隔离的模拟信号隔离模块GM11XXP
诺基亚(Nokia6)携带情怀回归,会不会是“幻乐一场”?
为什么说区块链很安全
乾照光电投资50亿建成LED全产业链南昌基地
如何在中FPGA实现Sobel边缘检测
稳定币的好处与不足之处分析
日本计划明年起部分提供5G服务 2020年开始面向大众
全国人大代表建议应大幅降低微信支付手续费
地质灾害监测GNSS设备 GNSS接收机
电蜂高压连接线加工工厂插针端子怎么用
荣耀v9的登场,华为mate9只有退位让贤!
国产第二代碳化硅MOSFET在直流充电桩电源模块中的应用
三相电的原理
LED驱动采用恒压电源,还是恒流电源供电?
智能制造、军民融合领跑2016中国(成都)电子展
文学创作可以使用AI吗
传感器给人类生活带来哪些好处
浅谈M码的GPS卫星的演变 升级军用GPS信号(M-code)的应用
荧光导航传感器的应用特点解析