V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
excellentcx
V2EX  ›  问与答

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

  •  
  •   excellentcx · 2019-09-25 22:51:38 +08:00 · 2213 次点击
    这是一个创建于 1646 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    14 条回复    2019-09-26 15:02:07 +08:00
    zzj0311
        1
    zzj0311  
       2019-09-25 23:05:04 +08:00 via Android   ❤️ 1
    不是 cs 的为啥不用 MATLAB 呢🙈
    tmachineff
        2
    tmachineff  
       2019-09-25 23:06:18 +08:00 via Android
    不学 java ?
    seki
        3
    seki  
       2019-09-25 23:18:15 +08:00
    了解运行原理的话,看文档和算法更快吧,直接看代码感觉是绕了远路

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

    这个项目里小例子挺多的
    https://github.com/spmallick/learnopencv
    faller
        7
    faller  
       2019-09-26 07:54:29 +08:00 via Android
    咱俩差不多,只不过我跨考的计算机😂
    excellentcx
        8
    excellentcx  
    OP
       2019-09-26 08:46:13 +08:00
    @tmachineff 我还是觉得 C++习惯一些
    excellentcx
        9
    excellentcx  
    OP
       2019-09-26 08:47:18 +08:00
    @zzj0311 算法肯定是要掌握的啊,况且还能提升编程水平(至少我是这么想的),matlab 在工作中也不见得有太多人用啊
    excellentcx
        10
    excellentcx  
    OP
       2019-09-26 08:48:11 +08:00
    @zjsxwc 谢谢,我进去看看
    Zchary
        11
    Zchary  
       2019-09-26 09:14:04 +08:00 via iPhone   ❤️ 1
    Oreilly 上啃原版书 hands-on Algorithms for Computer Vision,常用算法 Opencv 实现都有,应该对你很有帮助
    huruwo
        12
    huruwo  
       2019-09-26 09:45:46 +08:00
    一句话 多学多练
    jagger2048
        13
    jagger2048  
       2019-09-26 09:57:09 +08:00
    先会用,再去看源码。把图像处理里边的经典算法都用 opencv 跑一边摸清楚,看源码之前先自己实现一遍
    zzj0311
        14
    zzj0311  
       2019-09-26 15:02:07 +08:00 via Android
    @excellentcx 还有 Python 啊,非要盯着个新手不友好的玩意死怼,一边抱怨自己没基础,要么练要么弃,自己选咯
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4123 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 05:24 · PVG 13:24 · LAX 22:24 · JFK 01:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.