一个本科非科班出身的硕士党的苦闷

2019-09-25 22:51:38 +08:00
 excellentcx

简要介绍一下我的情况: 本科电气工程,硕士专业是控制工程(研一,刚入学),但实际内容是在做图像方面的工作,自学过 C++( C+ +Primer Plus ),主要使用的工具是 OpenCV(C++版本)。 C++水平也就是看懂代码的水平吧,复杂算法看不懂,但一般流程性的代码没有问题。 没有学过数据结构,正在恶补中(网课)。 参与过一个项目,由于是刚进来,所以我的任务就是照着已有的代码改改功能这些工作,虽然完成了一些工作,但感觉也没学到些啥东西。

最近在翻着看 OpenCV 和 Eigen 的源码,但看得着实有些痛苦。我分析了一下,主要原因有以下几个方面: 1.代码写的少,很多新奇的写法根本就没见过。 2.抛开算法部分先不谈,光是理清各种类之间的继承关系就已经是一个相当大的工作量了,前期没注意到这点,导致看的越来越乱,越来越摸不清方向。 3.自己的 C++基础还是有些差,某些语法掌握的还不是很牢固。

目前的这个情况使我非常苦恼,就好比脚上拴上两大坨铁块在走路,每走一步都很费劲。 好在我是发自内心的喜欢计算机,以及我做的这个方向,所以每天都可以坐在电脑前看代码,试着写代码。

我就想问一下各位大佬,面对我这个情况,能否给我一些建议,总之,目标就是尽可能地摆脱这种状态? OpenCV 到底怎么学才最高效?(我的目标是尽可能地了解其运行机理,而不是仅仅会调用函数) 还有一个很关键的问题,C++的编程水平怎样才能有一个实质性的提高?(我是很想学好 C++这门语言的)

2378 次点击
所在节点    问与答
14 条回复
zzj0311
2019-09-25 23:05:04 +08:00
不是 cs 的为啥不用 MATLAB 呢🙈
tmachineff
2019-09-25 23:06:18 +08:00
不学 java ?
seki
2019-09-25 23:18:15 +08:00
了解运行原理的话,看文档和算法更快吧,直接看代码感觉是绕了远路

然后如果做科研的话,实现原型不是更重要么,完全可以用更简单灵活一点的语言
ayase252
2019-09-25 23:48:28 +08:00
先知道某个东西解决了什么问题,然后想想怎么用最简单的方法解决这个问题,一般到这里就够了。
rayhy
2019-09-25 23:54:43 +08:00
OpenCV 这种大型项目,个人感觉不适合从代码看起。最起码应该先看书学会了算法再看代码吧?建议先看数字图像处理里的算法再在 OpenCV 找对应的代码。学一部分算法看一部分代码。先从 OTSU (cv::threshold)看起呗。
zjsxwc
2019-09-26 06:49:03 +08:00
一般都是先会用然后才是看源代码,opencv 这种也是这样,可以先用 opencv 写点东西,在看 opencv 里的源代码实现,

这个项目里小例子挺多的
https://github.com/spmallick/learnopencv
faller
2019-09-26 07:54:29 +08:00
咱俩差不多,只不过我跨考的计算机😂
excellentcx
2019-09-26 08:46:13 +08:00
@tmachineff 我还是觉得 C++习惯一些
excellentcx
2019-09-26 08:47:18 +08:00
@zzj0311 算法肯定是要掌握的啊,况且还能提升编程水平(至少我是这么想的),matlab 在工作中也不见得有太多人用啊
excellentcx
2019-09-26 08:48:11 +08:00
@zjsxwc 谢谢,我进去看看
Zchary
2019-09-26 09:14:04 +08:00
Oreilly 上啃原版书 hands-on Algorithms for Computer Vision,常用算法 Opencv 实现都有,应该对你很有帮助
huruwo
2019-09-26 09:45:46 +08:00
一句话 多学多练
jagger2048
2019-09-26 09:57:09 +08:00
先会用,再去看源码。把图像处理里边的经典算法都用 opencv 跑一边摸清楚,看源码之前先自己实现一遍
zzj0311
2019-09-26 15:02:07 +08:00
@excellentcx 还有 Python 啊,非要盯着个新手不友好的玩意死怼,一边抱怨自己没基础,要么练要么弃,自己选咯

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/604219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX