首先,Mat假設一個矩陣,所以應該對矩陣的外觀有所瞭解。如果你看看MAT文檔,你可能會得到一些關於MAT對象表示的一般概念。其次,如果你知道你在做什麼,即理解域,那麼一個寫得很好並且有文檔記錄的API應該是合理的。但是,如果你感冒並且對你所在的領域毫無頭緒,我建議你寫一個測試程序。簡單的程序與主,初始化一個Imgproc對象。開始將一些有意義的數據傳遞給您想要使用的API。通過調試器或簡單地轉儲對象輸出來檢查您得到的結果。你甚至可以用自定義的toString字段來擴展MAT和Imgproc類,這些字段可以爲你打印出一些數據。您也可以重寫某些方法,超級用戶調用它們然後檢查它們的立即輸出。 底線,寫一個測試程序,degub,分析輸出和錯誤,如果可能的話一步一步通過代碼,並追上你長期被遺忘的大學數學,然後沖洗並重復。
從技術上講,它是爲了封裝的原因。一個好的API應該隱藏關於事情如何完成的醜陋細節,並且只向您提供一條滿足您提供的參數的簡單消息。您可以編寫各種測試用例來查看它是如何響應的。你可以猜測它應該如何運作和測試這些假設。最終你會很好地理解它是如何工作的。假設我有一個API,它說String getFirstName(String lastName)我可以很容易地驗證getFirstName返回給定姓氏的FirstName。現在讓我說我有mySpecialClass getFirstName(String lastName);我將不得不仔細檢查mySpecialClass以查看它封裝的內容。可能是FirstName作爲鍵和LastName作爲值的內部映射。對於我所知的所有內容,可能只會公開getKey和getValue。不直觀,但如果有人有充分的理由認爲這將是在某些情況下表示姓名的最佳方式。爲什麼不呢?你要麼可以閱讀API和懂積極消費,並驗證你的假設
是的,但我發現它很奇怪,我需要調試/試錯最簡單的東西,因爲我找不到任何東西,沒有教程和/或例子。我確實知道Mat是一個矩陣,但是如何管理內部的層次結構 - 我的部分是找出它?我的意思是當用戶需要時間和時間來弄清楚如何使用它時,爲什麼要提供產品!?我以某種方式發現它很奇怪。 – tim
從技術上講,它是爲了封裝的原因。一個好的API應該隱藏關於事情如何完成的醜陋細節,並且只向您提供一條滿足您提供的參數的簡單消息。您可以編寫各種測試用例來查看它是如何響應的。你可以猜測它應該如何運作和測試這些假設。最終你會很好地理解它是如何工作的。假設我有一個說String getFirstName(String lastName)的API我可以通過驗證getFirstName返回給定姓氏的FirstName。 – myqyl4
當然,如果這些是簡單的數據類型,則爲true。但就我而言......我當然知道結果是按照矩陣組織的,但我不知道具體如何。我發現它在某種程度上非常有趣,幾乎現在有關於它在互聯網上的信息,我想知道所有那些使用OpenCV的人都知道如何做到這一點......試驗和錯誤每次都是真的嗎? :( – tim