フィルターのクリア

OK button does not work..

2 ビュー (過去 30 日間)
oshin
oshin 2014 年 2 月 23 日
コメント済み: oshin 2014 年 2 月 24 日
Hello,
I am using the below code, but when I click OK in popup window, Nothing is displayed. The code resumes when the popup window is closed.
message = sprintf("Hello World!\nClick the OK button to continue');
uiwait(msgbox(message));
disp('This will print after you click Continue');

回答 (2 件)

Mischa Kim
Mischa Kim 2014 年 2 月 23 日
編集済み: Mischa Kim 2014 年 2 月 23 日
Oshin, use
message = sprintf('Hello World!\nClick the OK button to continue');
instead. Notice the single prime (') in front of the Hello.
  2 件のコメント
Mischa Kim
Mischa Kim 2014 年 2 月 23 日
The error msg you are receiving now ("Subscript indices...") indicates that the issue is located somewhere else in your code. I recommend posting a separate question for that.
Please post follow-up questions and comments as comments , not as answers.
oshin
oshin 2014 年 2 月 24 日
Please help... The code is given below:
%start.m f1=figure('numbertitle','off','name','Sputum cytology','position',[0 20 1500 800]); set(f1,'menubar','none') imshow('C:\Users\hp\Desktop\projcode\bk.jpg') proc=uicontrol('position',[250 100 100 50],'callback','close(f1),shell1','string','PROCESS','fontsize',10); add=uicontrol('position',[450 100 100 50],'callback','close(f1),adf','string','ADD SAMPLE','fontsize',10);
delete=uicontrol('position',[650 100 100 50],'callback','close(f1),delf','string','DELETE','fontsize',10); shw=uicontrol('position',[850 100 100 50],'callback','close(f1), loginf','string','SHOW','fontsize',10);
%shell1.m
dlg_title = 'Input'; num_lines = 1; prompt = {'re-enter opd:'}; % label for each input %def = {'10','20'}; % default values of each input answer = inputdlg(prompt, dlg_title, num_lines); % open dialog box
if ~isempty(answer) % only if OK button was clicked op = str2double(answer{1}); % f = str2double(answer{2}); end dbpath = ('C:\Users\hp\Desktop\projcode\fsputumcyto.accdb'); url = [('jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=') dbpath]; con = database('','','','sun.jdbc.odbc.JdbcOdbcDriver', url);
sql_q=strcat('SELECT result FROM Result WHERE opd=',num2str(op)); curs = exec(con,sql_q); curs = fetch(curs); r=curs.Data; disp(r); cm=strcmp(r,'No Data'); if cm==0 %h=errordlg('Record exist Check OPD No.','Incorrect OPD'); %uiwait(h); %f = figure; %h = uicontrol('Position',[20 20 20 40],'String','ok',... % 'Callback','uiresume(gcbf)'); h = sprintf('Record exist Check OPD No. \n Incorrect OPD'); uiwait(msgbox(h)); %waitforbuttonpress;
f1=figure('numbertitle','off','name','Sputum cytology','position',[0 20 1500 800]);
set(f1,'menubar','none')
imshow('C:\Users\hp\Desktop\projcode\bk.jpg')
res=uicontrol('position',[500 250 100 50],'callback','close(f1),shell','string','Re-run','fontsize',10);
else
[p q]=uigetfile(strcat(num2str(op),'.jpg'),'C:\Users\hp\Desktop\projcode'); qp=strcat(q,p); chk=strcmp(p,num2str(op)); if chk==0 pic = imread(qp); %pic = imread('E:\sputum samples\IMG_0832.jpg'); width = 700; dim = size(pic); hsvimg = imresize(pic,[width*dim(1)/dim(2) width],'bicubic'); % hsvimg = rgb2n(pic2);
srgb2lab = makecform('srgb2lab'); lab2srgb = makecform('lab2srgb');
shadow_lab = applycform(hsvimg, srgb2lab); % convert to L*a*b*
% the values of luminosity can span a range from 0 to 100; scale them % to [0 1] range (appropriate for MATLAB® intensity images of class double) % before applying the three contrast enhancement techniques max_luminosity = 1; L = shadow_lab(:,:,1)/max_luminosity;
% replace the luminosity layer with the processed data and then convert % the image back to the RGB colorspace shadow_imadjust = shadow_lab; shadow_imadjust(:,:,1) = imadjust(L)*max_luminosity; shadow_imadjust = applycform(shadow_imadjust, lab2srgb);
f1=figure('numbertitle','off','name','Sputum cytology','position',[0 20 1500 800]); set(f1,'menubar','none') if(~isdeployed) cd(fileparts(which(mfilename))); end
imtool close all; % Close all figure windows created by imtool. workspace; % Make sure the workspace panel is showing. fontSize = 16; % Read in standard MATLAB gray scale demo image. grayImage = shadow_imadjust; %imread('C:\Users\hp\Desktop\mat\sputum samples\col.jpg'); gi=rgb2gray(grayImage); subplot(2, 3, 1); imshow(grayImage, []); title('Enhanced Image', 'FontSize', fontSize); %set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
%f = figure; %h = uicontrol('Position',[20 20 20 40],'String','ok',... % 'Callback','uiresume(gcbf)');
message = sprintf('Left click and hold to begin drawing.\nSimply lift the mouse button to finish');
uiwait(msgbox(message)); %waitforbuttonpress; hFH = imfreehand(); % Create a binary image ("mask") from the ROI object. binaryImage = hFH.createMask(); % Display the freehand mask. bi=~binaryImage; subplot(2, 3, 2); imshow(binaryImage); title('Binary mask of the region', 'FontSize', fontSize); % Calculate the area, in pixels, that they drew. n1 = sum(binaryImage(:)) % Another way to calculate it that takes fractional pixels into account. n2 = bwarea(binaryImage) % Get coordinates of the boundary of the freehand drawn region. structBoundaries = bwboundaries(binaryImage); xy=structBoundaries{1}; % Get n by 2 array of x,y coordinates. x = xy(:, 2); % Columns. y = xy(:, 1); % Rows. subplot(2, 3, 2); % Plot over original image. hold on; % Don't blow away the image. plot(x, y, 'LineWidth', 2); drawnow; % Force it to draw immediately. %Burn line into image by setting it to 255 wherever the mask is true. burnedImage = grayImage; burnedImage(binaryImage) = 255; %Display the image with the mask "burned in." subplot(2, 3, 3); imshow(burnedImage); caption = sprintf('New image with\nmask burned into image'); title(caption, 'FontSize', fontSize); end end
try to run the execute only the "process" tab as the error occurs in the shell1 code only.

サインインしてコメントする。


oshin
oshin 2014 年 2 月 23 日
Thank you for the help. I have already corrected that mistake. The main issue is that if I am running the code as a standalone code it is running successfully but if the gui and database are connected with the same code, then this type of error is occuring:
"Subscript indices must either be real positive integers or logicals.
Error using waitfor Error while evaluating uicontrol Callback"
and after the error,if the same code ie without gui and database is executed,it continuously gives the same error again and again.
  1 件のコメント
Jan
Jan 2014 年 2 月 23 日
編集済み: Jan 2014 年 2 月 23 日
Please post comments to answers in the corresponding comment section and open a new thread for a new problem. Then post a complete copy of the error message and the line of code, which causes the error.
Did you redefine the name "msgbox" as a variable?

サインインしてコメントする。

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by