help-octave
[Top][All Lists]

## Re: Converting a Matlab program to Octave

 From: Terry Duell Subject: Re: Converting a Matlab program to Octave Date: Thu, 03 Jul 2014 14:41:33 +1000 User-agent: Opera Mail/12.16 (Linux)

On Thu, 03 Jul 2014 13:48:18 +1000, Terry Duell <address@hidden> wrote:
```
```
```On Thu, 03 Jul 2014 12:03:47 +1000, momozilla76 <address@hidden>
```
```
[snip]

```
```
```
```
The function would be used the same way in Octave as in Matlab.
```
As the error message implies, you need to assign, or define the parameters/variables (a,W,noShow) in your calling function or script before calling the function adaptiveThres(). If you think you have done that, it would be helpful to include sufficient of the calling function or script so we can see how these variables are being defined.
```
```
```
```
Further to the above, is the code of the function adaptiveThres(), which you provided complete? Here is a minor modification to that code, along with some lines to show how it would be called, save this as "test.m" or whatever you like in the same dir as adaptiveThres(), and then in a terminal window "octave test.m". You will need the image package from octave forge to have access to the imread function.
```
% get the first band (it is an RGB, adaptiveThres only expects 1 band)
a = im(:,:,1);
pause

%Adaptive thresholding is performed by segmenting image a
[w,h] = size(a);
o = zeros(w,h);
%seperate it to W block
%step to w with step length W
for i=1:W:w
for j=1:W:h
mean_thres = 0;
if i+W-1 <= w & j+W-1 <= h
mean_thres = mean2(a(i:i+W-1,j:j+W-1));
```
%% mean_thres = 0.8*mean_thres; 57 %% the 57 here makes no sense, it is simply printed to screen each iteration
``` mean_thres = 0.8*mean_thres;
o(i:i+W-1,j:j+W-1) = a(i:i+W-1,j:j+W-1) < mean_thres;
end;
end;
end;
if nargin == 2
imagesc(o);
colormap(gray);
end;

Hope that helps,

Cheers,
--
Regards,
Terry Duell

```