java求sobel算子代码_OpenCV3 Java图像索贝尔Sobel处理(Imgproc.Sobel)

本文介绍了Sobel算子在数字图像处理中的应用,它是一种离散卷积算法,用于图像边缘检测。通过3*3模板进行卷积计算,涉及到边界处理问题。在Java中,利用OpenCV库的Imgproc.Sobel方法,可以实现Sobel算子处理图像。提供的代码案例展示了如何读取图像、进行Sobel操作并保存处理后的图像。
摘要由CSDN通过智能技术生成

Sobel算法:

1、这是一种离散的卷积算法。由于数字图像是以离散的像素形式体现图像,故数字图像处理的实质就是离散数字的处理。

2、所谓卷积(convocation),是对所关心像素进行的离散处理,不仅根据卷积点原图像的数值,而且根据其周期像素的数值。平面卷积按照模板的大小和类型分类,典型的数字图像平面卷积模板采用3*3模板(即课程讨论的计算阵列)

3、采用卷积模板计算对应的图像处理结果(这里是sobel)时,将3*3模板在原数字图像上移动,每次一个像素(或横向,或纵向),以此得到全部图像像素的卷积计算结果,作为图像处理的结果。

4、采用3*3模板卷积时,必定有第1行,最后行,最左列和最右列的像素计算无法得到有效数值,称为卷积计算的边界处理,现代文献中,有将边界值填零,有将边界值填镜像,有将边界值做特定的逻辑运算的各种方案,至芯教材中采用填零的做法。

5、有了算法,如何将算法转变成电路,则是EDA的算法工程师的主要任务。在夏老师的代码中,采用了如下方式的结构以支持算法:

5.1、像素是8比特,数据总线是32比特。即一次存储器的读写访问一个字,可以访问四个像素。

5.2、采用了三个行的字寄存器分别进行前一行,当前行和后一行的一个取样列(字宽度,即4个字节/像素)

5.3、这样在600宽度的图像中,就有0~149个取样列

5.4、在每次取样后,进行对应的移位操作,在整个计算流水线上(含行寄存器移出,计算阵列移动,导数计算,绝对值计算,结果寄存器的移动)移动一个字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值