看板 C_and_CPP 關於我們 聯絡資訊
各位大大好 我最近在使用opencv套件時遇到exception thrown的問題 原本可編譯執行程式碼如下 int main (int argc,char*argv[ ]) { …… cv::Mat cv_image(cv::size(1024,1024), cv_16UC1, imgBuffer_ptr, cv::Mat::AU TO_STEP); cv:: nameWindow(" " , 1); imshow(" ",cv_image); waitKey(20); …… } 其中imgBuffer_ptr資料型態是Word* 指向sdk提供的相機儲存圖片的位址 但當我只是改成這樣 cv::Mat cvshow(WORD*addbuffer) { cv::Mat cv_image(cv::size(1024,1024), cv_16UC1, addbuffer, cv::Mat::AU TO_STEP); cv:: nameWindow(" " , 1); imshow(" ",cv_image); waitKey(20); } int main(int argc,char*argv[ ]) { …… cvshow( imgBuffer_ptr); …… } 執行後就會跳出c++ exception at memory location的error 想請問各位,我該如何改掉這錯誤啊? 第一直覺是ptr的問題… 但又不懂錯在哪 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.5.5 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1643077172.A.081.html ※ 編輯: Vvvahc (114.136.5.5 臺灣), 01/25/2022 10:19:54 ※ 編輯: Vvvahc (140.112.174.64 臺灣), 01/25/2022 10:21:22
lylu: 你傳入的addbuffer沒有用到 function裡面還是用imgBuffer_01/25 10:49
lylu: ptr?01/25 10:49
※ 編輯: Vvvahc (140.112.174.64 臺灣), 01/25/2022 11:08:02
Vvvahc: 我function內是用addbuffer才對,用手機編輯沒注意到XD 01/25 11:10
Vvvahc: 已改正 01/25 11:10
Vvvahc: 不過還是不知道錯在哪( _ ) 01/25 11:17
flyfoxy: cvshow() return ? 01/25 12:38
lycantrope: 沒return cv::Mat 或是改成void? 01/25 12:48
closer76: 你的 imgBuffer_ptr 是怎麼宣告的?空間是如何配置的? 01/25 12:50
closer76: 另外,是全域還是區域變數? 01/25 12:50
Vvvahc: return我等下來試試 void我昨天有試過也是不能… 01/25 14:33
Vvvahc: imgBuffer_ptr 是我宣告word*imgBuffer_ptr 後,丟到sdk 01/25 14:34
Vvvahc: 提供的copy function去得到指標位址 01/25 14:34
Vvvahc: 我是設定成區域變數 01/25 14:35
henrylin8086: 你沒有return編譯得過去嗎 01/26 23:12
henrylin8086: 我只是好奇,我記得VS很聰明非void沒return會跳紅字 01/26 23:16
henrylin8086: 程式碼你可能需要提供更完整一些 01/26 23:22
henrylin8086: 我稍看一下沒有看到有什麼語法邏輯錯誤 01/26 23:22
Vvvahc: 感謝h大的站內信 01/28 17:20
Vvvahc: 這邊更新一下,mat要用return才能編譯 (會不會成功執行是另 01/28 17:20
Vvvahc: 一回事…) 01/28 17:20