从控制台传递图像时出现Matlab错误-Basic

从控制台传递图像时出现Matlab错误-Basic,matlab,octave,Matlab,Octave,我正在尝试将一个.png图像从matlab中的控制台传递到一个名为bwconversion的函数。当我在控制台屏幕中将变量名分配给图像文件时,我编写的函数确实起作用-即: >>a = imread('1.png'); >>bwconversion(a); 但是,我需要代码才能工作,而我可以直接将其传递到文件路径,例如: >>bwconversion('J:\Vision\ColourIm\1.png'); 但是上面返回的错误表明图像没有传递给函数 请在下面

我正在尝试将一个.png图像从matlab中的控制台传递到一个名为bwconversion的函数。当我在控制台屏幕中将变量名分配给图像文件时,我编写的函数确实起作用-即:

>>a = imread('1.png');
>>bwconversion(a);
但是,我需要代码才能工作,而我可以直接将其传递到文件路径,例如:

>>bwconversion('J:\Vision\ColourIm\1.png');
但是上面返回的错误表明图像没有传递给函数

请在下面找到我的基本功能:

function bwconversion(imIn)

%Convert Image to Black and White
gr = rgb2gray(imIn);
bw = im2bw(gr, 0.04);
clear gr;
imshow(bw);

如果您能给我任何建议,我将不胜感激

为什么不直接将文件名作为参数传递

function bwconversion(imIn_name)

% Read the image
imIn = imread(imIn_name);

% Convert Image to Black and White
gr = rgb2gray(imIn);
bw = im2bw(gr, 0.04);
clear gr;
imshow(bw);

为什么不直接将文件名作为参数传递

function bwconversion(imIn_name)

% Read the image
imIn = imread(imIn_name);

% Convert Image to Black and White
gr = rgb2gray(imIn);
bw = im2bw(gr, 0.04);
clear gr;
imshow(bw);

恐怕这仍然会给我带来相同的错误:使用rgb2gray>parse_输入的错误(第81行)映射必须是一个m x 3数组。rgb2gray(第35行)X=parse_输入(varargin{:})中出错;bwconversion错误(第4行)gr=RGB2GRY(imIn)@L1am22您的图像可能已经是BW。错误告诉您
imIN
必须有3个通道(
imIN
的最后一个维度必须是3)。在调用
rgb2gray
之前键入
size(imIN)
,查看您拥有的数据。我刚刚在实验室移动了计算机,看起来好像是MatLab的错误安装,因为您提供的代码和我最初上传的代码都编译无误。很抱歉浪费了您的时间。恐怕这仍然会给我相同的错误:使用rgb2gray>parse_输入时出错(第81行)映射必须是一个m x 3数组。rgb2gray(第35行)X=parse_输入(varargin{:})中出错;bwconversion错误(第4行)gr=RGB2GRY(imIn)@L1am22您的图像可能已经是BW。错误告诉您
imIN
必须有3个通道(
imIN
的最后一个维度必须是3)。在调用
rgb2gray
之前键入
size(imIN)
,查看您拥有的数据。我刚刚在实验室移动了计算机,看起来好像是MatLab的错误安装,因为您提供的代码和我最初上传的代码都编译无误。抱歉浪费了你的时间。