[问题] 从主程式移出函数遇到exception thrown

楼主: Vvvahc (我来搞事了)   2022-01-25 10:19:30
各位大大好
我最近在使用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的问题… 但又不懂错在哪
谢谢~
作者: lylu (理路)   2022-01-25 10:49:00
你传入的addbuffer没有用到 function里面还是用imgBuffer_ptr?
楼主: Vvvahc (我来搞事了)   2022-01-25 11:10:00
我function内是用addbuffer才对,用手机编辑没注意到XD已改正不过还是不知道错在哪( _ )
作者: flyfoxy (飞狐)   2022-01-25 12:38:00
cvshow() return ?
作者: lycantrope (阿宽)   2022-01-25 12:48:00
没return cv::Mat 或是改成void?
作者: closer76 (克楼瑟)   2022-01-25 12:50:00
你的 imgBuffer_ptr 是怎么宣告的?空间是如何配置的?另外,是全域还是区域变量?
楼主: Vvvahc (我来搞事了)   2022-01-25 14:33:00
return我等下来试试 void我昨天有试过也是不能…imgBuffer_ptr 是我宣告word*imgBuffer_ptr 后,丢到sdk提供的copy function去得到指标位址我是设定成区域变量
作者: henrylin8086 (小木)   2022-01-26 23:12:00
你没有return编译得过去吗我只是好奇,我记得VS很聪明非void没return会跳红字程式码你可能需要提供更完整一些我稍看一下没有看到有什么语法逻辑错误
楼主: Vvvahc (我来搞事了)   2022-01-28 17:20:00
感谢h大的站内信这边更新一下,mat要用return才能编译 (会不会成功执行是另一回事…)

Links booklink

Contact Us: admin [ a t ] ucptt.com