how to convert char array to two dimension image

hello my gui brows an image and I want to apply edge method on this image but the problem that when i brows image it appear as string , so i cant apply edge method?? can anyone tell me how to solve this problem please ?

2 Comments

Please post your code.
It sounds like you might be trying to work on the name of the file rather than the content of the file.
function brows_Callback(hObject, eventdata, handles)
[filename pathname] = uigetfile({'*.tif'},'File Selector');
image = strcat(pathname, filename);
axes(handles.axes1);
imshow(image)
complete = strcat(pathname,filename);
set(handles.path,'string',complete);
% here the problem.. how can I apply edge method ?
[~, threshold] = edge(image, 'sobel');
fudgeFactor = .5;
BWs = edge(image,'sobel', threshold * fudgeFactor);
axes(handles.axes2);
imshow(BWs)
thank you in advance

Sign in to comment.

 Accepted Answer

  1. Do not name a variable image
  2. You need to read the content of the image file using imread()
  3. It is recommended to use fullfile() to construct the file names instead of strcat

2 Comments

function brows_Callback(hObject, eventdata, handles)
[filename pathname] = uigetfile({'*.tif'},'File Selector');
img = strcat(pathname, filename); axes(handles.axes1); imshow(img) complete = fullfile(pathname,filename); set(handles.path,'string',complete); X = imread(img);
% the same error here [~, threshold] = edge(X, 'sobel');
the same problem ! :(
I solve the problem finally
this is the code
[filename pathname] = uigetfile({'*.tif'},'File Selector'); img = strcat(pathname, filename); axes(handles.axes1); imshow(img) complete = fullfile(pathname,filename); set(handles.path,'string',complete);
X = imread(img); X = rgb2gray(X); % to convert the image to two dimensional in order to use edge method
thank you for helping ^_^

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!