how to convert char array to two dimension image

21 views (last 30 days)
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
Walter Roberson
Walter Roberson on 1 May 2016
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.
sallam tanna
sallam tanna on 1 May 2016
Edited: Walter Roberson on 1 May 2016
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

Walter Roberson
Walter Roberson on 1 May 2016
  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
sallam tanna
sallam tanna on 1 May 2016
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 ! :(
sallam tanna
sallam tanna on 1 May 2016
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!