那要看你的目的是什麼了。舉例,汽車現在那麼先進和易用了,還需要了解變速箱的原理嗎?那得看你的目的是什麼了,如果只是普通的開車,不需要了解。如果是修車師傅,那得了解。如果是汽車廠家工程師,那得非常了解。簡單來說,看具體需求。


當然有必要去學習這些演算法,至少你要知道這些演算法的優缺點這是最基本的。可能在實現同一個結果上,可能有很多的演算法都能實現面對這種情況的時候你該如何選擇呢?如果,你對這些演算法不熟悉也許,就不會達到理想的效果。如果,你不想一直只會用,想要去創新,融入一些自己的想法,動手去實現這些演算法也是非常有必要的,如果你能自己用c語言寫出這些演算法想必那時候一定是一個大牛了,而且工資絕對不會低,之前我聽一個同事說,他認識一個人自己改動了surf演算法,改進後的性能比原來的還要強不少,人家年薪有上百萬,學習編程不應該之會用,應該要做到知其然還要知其所以然。


當然需要。opencv只是一個通用的視覺庫集合,我們在實際項目應用中不一定能夠直接使用,比如說有的演算法效果非常好,但是運算量很大,一秒鐘只能做幾幀,所以這時候需要對演算法進行優化,了解演算法本身的原理才能對它進行演算法上的優化或者裁剪。有的設備對內存的使用有要求,這也需要在了解演算法的基礎上才能知道怎樣才能減少對內存的使用。


同一個目標,可能通過多個演算法都可以達到,但是哪一個才是最有用的呢?如果不了解演算法原理,可能就需要多次實驗,然後取最好的結果。

還一個,現在圖像崗位的面試,還是會問你演算法原理的,不知基本原理,就談不上改進和創新了。

所以,要學就要學的徹底些~


推薦閱讀:
相关文章