边缘检测 java_Sobel边缘检测,奇怪的输出

我正在尝试为YUV摄像机流实现Sobel算法进行边缘检测 . 最初看起来很容易,但我不确定这种方法是否正确:

我正在将滤镜应用于Y像素组件并执行U和V = 0(黑白图像) .

之后,为了检查结果,我通过串口发送帧,但是在将图像从YUV转换为jpg之前 .

黑白图像完美运行,我可以在我编写的PC应用程序上看到它,但是当我将Sobel滤镜应用于Y组件时,我得到了这个:

8a4fa5b8deaba2ce78d51fb1a93ad893.png

代码:

#define index(xx, yy) ((yy * width + xx) * 2) & 0xFFFFFFFE // address multiple of 2

(...............)

for (y=1, y < height-1; y++){

for (x=1, y < width-1; y++){

pixel_valueY_h=0.0;

pixel_valueY_v=0.0;

for (j= -1; j<2; j++){

for (i= -1; i<2; i++){

offset= index(x+1, y+1);

pixel_valueY_h += (sobel_h[j + 1][i + 1])* input[offset+1]; //offset+1=> Y component

pixel_valueY_v += (sobel_v[j + 1][i + 1])* input[offset+1];

}

}

offset = index(x,y);

pixel_value= sqrt1((pixel_valueY_h * pixel_valueY_h)+(pixel_valueY_v * pixel_valueY_v));

if (pixel_value > 255) pixel_value=255;

if (pixel_value < 0) pixel_value=0;

//output frame

output[offset] &=0x00; //U and V components = 0

output[offset+1] &=(255- (unsigned char)pixel_value );

}

}

(...............)

关于发生了什么的任何线索?提前致谢 .

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值