如何在添加的函数I显示GUI的轴的图像

12次(最近30天)
LEO
LEO 在2013年4月8日
评论: 图像分析师 2021年5月21日
我试图显示GUI图像,但一个问题是,我不能在功能显示轴线上的图像I中加入:功能BytesAvailable_Callback(OBJ,事件),当我打电话:轴(handles.axes1)imshow('image1的.JPG“),那么它不显示轴线上,但在新窗口中显示如图一。
如果我叫轴(handles.axes1);imshow在任何按钮的功能(“image1.jpg”),它正确地在该轴显示。为什么?
我的代码:
-----------------%HAM HIEN VIDEO -------------------------
全球vidobj;全球手;%创建具有希望的分辨率vidobj = videoinput视频对象( 'WINVIDEO',1 'YUY2_640x480');%,info.DeviceInfo(1,1).SupportedFormats {1});金宝app集(vidobj, 'FramesPerTrigger',1);集(vidobj, 'ReturnedColorSpace', 'RGB');
%创建一个句柄,其中图像将被显示vidRes = GET(vidobj,“VideoResolution”)的轴线;nBands = GET(vidobj, 'NumberOfBands');画佳=图像(零(vidRes(2),vidRes(1),nBands), '父',handles.video);
%识别功能与相关的UpdatePreviewWindowFcn%video_preview_fcn(见下文)每个相机有可用的图像时自动调用 - 你不需要调用这个函数setappdata(画佳,“UpdatePreviewWindowFcn”,@video_preview_fcn);
%调用预览开始实时图像预览饲料(vidobj,画佳);
%srcObj1 = GET(vidobj, '源');%绥chinh茂町视频%集(srcObj1(1), '亮度',10);
--------------------%ANH HIEN LEN GIAO DIEN ------------------------
S =串行('COM7');
s.BytesAvailableFcn = @BytesAvailable_Callback
的fopen(一个或多个);
%FCLOSE(一个或多个);
%IND =的fscanf(S);
%I =的isEmpty(IND)
*%该函数I加入到读取RS232端口的数据,则处理该数据,并使其作为的一个条件,以显示图像,但不能*
%---------------------- Serial_Callback
功能BytesAvailable_Callback(OBJ,事件)
全球的手;
全球的vidobj;
IND =的fscanf(OBJ)
--------%莫伊他们维罗 - 忠----
FID =的fopen('mavach.txt''在');
fprintf中(FID,'%s的\ n \ n',IND);%的文本文件中写“字”(上)
%集(handles.mavach, '字符串',IND);
FCLOSE(FID);
---------------------------------%
%编辑代码在这里 - 鹤海北
集(hand.mavach,'细绳',IND);
如果%(〜的isEmpty(IND))
%NEU合作MA vach THI CHUP无水-----------
testpic = getsnapshot(vidobj);
imwrite(testpic,'image1.jpg');
_轴(hand.image)
imshow('image1.jpg');_
%我无法显示轴这一形象,因为它总是在新窗口中diplay
--------%MA Xuat RA vach TXT文件----
FID =的fopen('mavach.txt''在');
%fprintf中(FID, '%S \ N',IND);%的文本文件中写“字”(上)
FCLOSE(FID);
---------------------------------%
%------------------------------------------------------------------
%------------ NHAN党BIEN SO XE ------------------
%NHI菲·安
BW = imread('image1.jpg');
I1 = rgb2gray(BW);
I1 = medfilt2(I1,[3 3]);%禄忠六
级= graythresh(I1);
BW1 = im2bw(I1,电平);
BW1 = bwareaopen(BW1,350);%Loai博nhung DOI TUONG是汉350像素
%----------- TIM VUNG BIEN SO XE ---------------------
对象= regionprops(BW1);
为了索引= 1:长度(物体)
%的BoundingBox CO 2的清藩TRA已经LA [ul_corner宽度]
%ul_corner:TOA做[X Y]智GOC PHIA TREN cung贲TRAI CUA框
%的宽度:[x_width y_width]沼荣VA沼草CUA框
如果对象(指数).Area> 50000 &&对象(指数).BoundingBox(3)/对象(指数).BoundingBox(4)> 0.5
X =小区(目标(索引).BoundingBox(1)4)林%TRON LEN
Y =小区(目标(索引).BoundingBox(2)4)东亚%做
widthX =地板(对象(指数).BoundingBox(3)-15)林%TRON xuong
widthY =地板(对象(指数).BoundingBox(4)-9)%诏曹VA诏代
子图像(索引)= {BW(Y:Y + widthY,X:X + widthX,:)};
子图像{索引} =〜子图像{索引};
%数字,imshow(子图像{索引});
BW1 =子图像{索引};
结尾
结尾
imwrite(BW1,'image2.jpg'
轴(hand.plateimage)
imshow('image2.jpg'
%此图片是太...

接受答案

图像分析师
图像分析师 在2013年4月8日
我有这个奇怪的事情一旦与视频直播。肖恩·德沃尔斯基试图在电话中向我解释。他有一些原因吧,我觉得他的“解决方案”是将图像直接写入到轴,而不是使用imshow()的“CDATA”属性。我从来没有这样做,我下降了几个星期的项目,当我回来了,我没有这个问题了,并没有用肖恩的解决方法。我不知道发生了什么“修理”它。也许肖恩将在这里附和的解释。
2评论

登录评论。

更多的答案(1)

雷努卡
雷努卡 2021年5月21日
我想通过一个关于利用Matlab GUI同一轴线,以diaplay文件夹中的一个的所有图像。我下面的代码在文件夹中只显示第一图像?kndly给予解决
handles.output = fhex;
文件列表= DIR(完整文件( 'E:\桌面\ MATLAB \ IMG-SEG \ CNN \ IAS1 \ * JPG'));
handles.filelist =文件列表;
handles.frameindex = 1;
%更新手柄结构
guidata(hObject,手柄);
轴(Handles.axes1);
文件列表= handles.filelist;
FRAMEINDEX = handles.frameindex;
MyFolder中= 'E:\桌面\ MATLAB \ IMG-SEG \ CNN \ IAS1';
currentframefile =文件列表(FRAMEINDEX)。名称;
handles.frameindex = FRAMEINDEX + 1;
FF =完整文件(MyFolder中,currentframefile);
I = imread(FF);
imshow(I);
guidata(hObject,手柄);

标签

下载188bet金宝搏

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!