C 實現網格水印之除錯筆記(四) 完成嵌入

2022-08-05 05:48:13 字數 1564 閱讀 9613

接下來的問題是,當模型是對稱的時候,結果是符合預期的,但是當模型是不對稱的時候,結果是錯誤的,如下:

輸入: 頂點:233

輸出:

這又是什麼鬼。。。,我的馬呢!!!

看來邏輯上還是有錯誤

注意這時候c++輸出的除錯資訊如下:

錯誤提示為:input to eig must not contain nan,然後是一堆燙燙燙。。。

還有乙個提示是: matrix is close to singular or badly scaled. results may be inaccurate. rcond = 8.367225e-021.

初步估計是matlab計算模型特徵值時出錯了。這裡一直困惑我的地方是,為什麼輸入乙個對稱的模型時,計算的結果沒有問題,當輸入乙個非對稱的模型時,卻會出現上述結果?

然後我檢視了之前計算矩陣特徵值的matlab**,

也就是說,用到了面積資訊。當出現面積為0的情況時,0就作為除數了。**中本來的拉普拉斯矩陣的計算方法是 l= d – a,其中d為對角矩陣,其對角元素為頂點的度,a為鄰接矩陣。思考再三,決定重新寫拉普拉斯矩陣的計算方法以及特徵值分解的演算法。

各矩陣的獲取方式如下:

以及matlab特徵值分解的**

修改了**後的輸出:(當然首先來看我的馬了=。=)

兩個模型的對比:

用線勾勒出的是嵌入水印後的模型

下面兩張圖是一些細節

然後再看看兔子。輸入: 頂點1187

最後再用一開始的圓柱驗證一下。頂點:1180,兩個模型用肉眼看幾乎是重合的

從上面的結果來看,第一部分嵌入水印的工作應該是完成了。接下來就是提取水印了。

EtherCAT之Lan9252除錯筆記

1.介面 完成以後先去讀,0x64暫存器。如果值為0x87654321,則時序okay 否,則修改時序 2.訪問lan9252介面的時候 byte1byte2byte3byte4 資料線add 0 16 add 16 16 data 0 16 data 16 16 位址線1組000000001000...

2410裸板除錯筆記之 6 (未整理的)

還有乙個問題很奇怪,我用不帶校verify的nand程式設計演算法把2410 run nand 的bin檔案 大小為17k放到 燒寫到nand中,之後竟然可以執行起來,串列埠中看到了列印的資料,但是要等很長時間才能列印出來,這非常奇怪,使用的 bootload中也加入了 的搬運工作。原因待查 現在往...

STM32除錯筆記之USART 波特率

設計了乙個串列埠通訊電路 cpu 接 光電隔離ic 再接max3232 除錯時發現串列埠助手裡一直是亂碼,而且示波器測得的波形也老是抓不到波形 不怪示波器,怪我水平太低了。浪費了乙個晚上時間,後來請同事幫忙,他幫我開啟了串列埠助手中的 hex顯示 新技能get 這樣就能看串列埠發出來的實際二進位制資...