iam unable to call function in for loop?

1 回表示 (過去 30 日間)
barath V
barath V 2020 年 2 月 6 日
コメント済み: barath V 2020 年 2 月 6 日
this is the error iam getting
The file name or URL argument must be a character vector or string scalar.
Error in imread (line 342)
[source, fmt_s, extraArgs, was_cached_fmt_used] = parse_inputs(cached_fmt, varargin{:});
im = double(imread(image))
clc;
clear all;
D = 'C:\Users\PRL\Desktop\barathfocus\for-matlab-testonly';
S = dir(fullfile(D,'*.tif')); % pattern to match filenames.
for k = 1:numel(S)
F = fullfile(D,S(k).name);
I = double(imread(F));
a = bodekke(I);
end
function[addition] = bodekke(image)
im = double(imread(image))
bd = [-1 0 1]
cbd = conv2(im,bd)
squaredcbd = cbd.^2
addition = sum(squaredcbd(:))
imshow(cbd)
end
  2 件のコメント
Bhaskar R
Bhaskar R 2020 年 2 月 6 日
a = bodekke(F);
barath V
barath V 2020 年 2 月 6 日
編集済み: barath V 2020 年 2 月 6 日
yes,is working thanks bhaskar.
but i dont understand why it works.
i have passed the image to variable I.
and i call the function with image I it should work.
why it is working if i call by using its name

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

採用された回答

Shunichi Kusano
Shunichi Kusano 2020 年 2 月 6 日
The argument for imread must be file location. "image" in the function is an array.
HTH
  5 件のコメント
Stephen23
Stephen23 2020 年 2 月 6 日
編集済み: Stephen23 2020 年 2 月 6 日
"and i call the function with image I it should work."
Not according to the imread documentation, which states that imread requires a filename as its first input argument. In your function bodekke you call imread, but in your original code what is its input argument? (hint: an image array, and not a filename as it requires).
"why it is working if i call by using address"
Because imread requires a filename as its first input argument.
It appears that you are getting confused by the fact that you have called imread twice, once outside the function (correctly with a filename) and once inside the function (incorrectly with a numeric array). You can either call imread outside the function (and pass an image array) or inside the function (and pass the filename), but doing both makes no sense.
barath V
barath V 2020 年 2 月 6 日
thanks i understood.

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

その他の回答 (0 件)

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by