计算机视觉,C++或Java

2022-09-03 08:50:36

我是计算机视觉领域的一个完全新手,最近我使用OpenCV和Java实现了一些示例。我对这个领域的潜力印象深刻,并希望继续学习更多。

我了解到OpenCV是用C++编写的,虽然Java有一个包装器(JavaCV),但我明白Java中的应用程序比C++中的应用程序慢,大多数企业应用程序都是用C++编写的。

我的问题是这样的:我在Java方面有几年的经验,我感到非常舒服,可以用它编写任何应用程序;迁移到C++学习简历是明智的,还是我应该坚持使用Java并使用其包装器。


答案 1

计算机视觉是一个要求很高的领域 - 虽然你最好坚持你所知道的,并且只有在需要性能时才迁移到opencv,但另一个事实是,你需要深入研究数学,指针和算法来学习和构建一个好的计算机视觉应用程序。在Java中做到这一点可能比学习c ++更麻烦。

因此,如果您只想对某些学校项目的图像应用过滤器 - 请转到Java。但是,如果你想更多地使用OpenCV,学习视觉算法或编写自己的视觉算法,我的强烈建议是学习C++ - 这不是很可怕吗!

编写本机代码的一个原因是灵活性 - 您需要执行各种在Java中难以或性能杀手的技巧。

简而言之,学习C++比计算机视觉简单得多。OpenCV不仅仅是一个你想调用的库,在那里做一些处理。这是一项前沿技术 - 你会想要理解它,入侵它,构建它,遍历代码,远远超过调用一些JNIfunc();

如果您这样做,请注意,OpenCV提供了两个接口 - 一个用于C,一个用于C++。虽然它们提供了相同的功能,但C++一个与Java非常相似 - 具有自动内存管理和更多糖果。您可以参考帖子以查看差异


答案 2

我建议坚持你现在觉得舒服的东西。仅当您发现它没有公开您想要的某些API或性能实际上成为问题时,才切换到C++。现在,您正处于学习阶段。


推荐