Why is my code showing the error:" Error using matlab.graphics.primitive.Image/set; Invalid or deleted object.
16 次查看(过去 30 天)
显示 更早的评论
I would love some assistance with the following code. Im setting up a security/motion detection camera as shown in a tutorial put on by mathworks. I have a little different hardware set up that I think may be part of the problem. I am simply using my built in camera on my surface to compare a reference photo to a snapshot taken from live video and seeing if there is motion detected. However, I am getting the following error as shown in the title:
Error using matlab.graphics.primitive.Image/set
Invalid or deleted object.
Error in Sentry_Cam (line 29)
set(hShow,'CData',object_detected);
Im new at all this and tried following the online example as closely as possible. Could it be a data type issue? hShow says its a 1x1 Image in the workspace window and Object_detected is assigned as a uint8. Could this be the issue with the line reading set(hShow,'CData',object_detected)?
I also tried looking at hShow specfically and it says it is a "handle to deleted Image" ? Where could my code be deleting it? Any assistance would be wonderful. Thanks for any help you can give!
function Sentry_Cam()
%%
clear all; close all; clc; imaqreset;
%% Setup Image Acquisition
hCamera= videoinput('winvideo',1);
% Create a hangle to an imshow figure for faster updating
hShow=imshow(zeros(480,640,3,'uint8'));title('Sentry Cam')
%% Acquire reference image
set(hCamera,'ReturnedColorSpace', 'RGB')%Need this to convert YUY2 to RBG to get rid of pink coloring
ref_vid_img=getsnapshot(hCamera);
%image(ref_vid_img)
%% Quantize images and outputing to the screen
frames=2000;
for i=1:frames
%Acquire an image form the webcam
vid_img=getsnapshot(hCamera);
% Call the live segmentation function. This is a seperate function that seems to working just fine when run line by line
object_detected=Segmentation_Fn(vid_img,ref_vid_img);
% Update the imshow handle with a new image
set(hShow,'CData',object_detected);
drawnow;
end
%% Shutdown webcam by deleting handle
clear hShow;
end
Outout following the my code:
Error using matlab.graphics.primitive.Image/set
Invalid or deleted object.
Error in Sentry_Cam (line 29)
set(hShow,'CData',object_detected);
0 个评论
采纳的回答
Image Analyst
2020-7-4
编辑:Image Analyst
2020-7-4
At some point hShow disappears. Set a breakpoint there and then stip through with the debugger and look at the workspace to find out which line of code is blowing it away. But I don't know why it disappears in the loop. For me it doesn't.
You can delete hCamera to shut down the video input rather than clearing hShow.
delete(hCamera);
3 个评论
Abhishek Patil
2021-3-10
Can you please tell what changes you did to your code to resolve the error.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Point Grey Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!