gpt4 book ai didi

android - Android 上的 opencv 问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:43 25 4
gpt4 key购买 nike

我们急需帮助,我们正在 Android (Java) 中使用 openCv。我们面临着很多问题:

convertTo() 不起作用,因此我们无法将 3 channel 图像转换为 1 channel 而不将其传递给 cvtColor()。

grayImg.convertTo(grayImg, CvType.CV_8UC1);

cvtColor() 给出了一个奇怪的输出:

Imgproc.cvtColor(src, grayImg, Imgproc.COLOR_RGB2GRAY);

这一行的输出是图像重复了 4 次!摆脱这种重复的唯一方法是添加这一行,输出是黑白图像但 3 channel ,因此它会崩溃任何即将到来的功能,因为它需要 1 channel 图像。

Imgproc.cvtColor(grayImg, grayImg, Imgproc.COLOR_GRAY2RGB,3);

canny() 用于边缘检测:

Imgproc.Canny(grayImg, grayImg, 10, 100,3,true);

findContours() 计算了可怕的轮廓数量,而图像中的对象数量仅为 2 输入图像是 3 channel bmp 图像,我们将其转换为 Mat。

输出图像:

https://dl.dropbox.com/u/36214963/canny.jpg

感谢您的关心

最佳答案

尝试BGR2GRAY而不是RGB2GRAY。我遇到了同样的问题,我通过这个解决了它。文档中也有关于这个的注释

Converts an image from one color space to another.

cvtColor 函数将输入图像从一种颜色空间转换为另一种颜色空间。在 RGB 颜色空间转换的情况下,应明确指定 channel 的顺序(RGB 或 BGR)。 请注意,OpenCV 中的默认颜色格式通常称为 RGB,但实际上是 BGR(字节颠倒)。因此标准(24 位)彩色图像中的第一个字节将是8 位蓝色分量,第二个字节为绿色,第三个字节为红色。第四个、第五个和第六个字节将成为第二个像素(蓝色、绿色、红色),依此类推。

关于android - Android 上的 opencv 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com