java bufferedimage byte_使用BufferedImage.TYPE_BYTE_BINARY作为输出进行Sobel边缘检测

我正在做一个学校作业,我们应该对图像进行索贝尔边缘检测 . 我们应该用sobel核心进行卷积,然后计算每个像素的梯度幅度 . 之后,我们应该使用阈值方法为像素提供值255(白色)或0(黑色),具体取决于阈值 . 边缘检测 must 的输出图像属于 BufferedImage.TYPE_BYTE_BINARY 类型 . 我使用灰度图像作为输入,但结果看起来非常奇怪..它绝对不会检测到边缘 .

我google了一下,设法找到工作代码(here,看到标记的正确答案),但是,这里的输出图像是BufferedImage.TYPE_INT_RGB类型,这是不允许的...在这个问题中,也使用BufferedImage . TYPE.INT.RGB作为边缘检测的输入 .

非常感谢帮助解决这个问题!

Result when I execute the program. The edge detection result is on the far right.

ys9vv.png

What the edge detection result should look like.

jvOan.png

My code:

/**

* turns an image to a grayscale version of the image

*/

public void alterImageGrayScale() throws IOException {

im

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值