# MATLAB-Stuff

### Write a multipage TIFF

```for i=1:100
a(:,:,i)=rand(256);
imwrite(a(:,:,i),'file.tif', 'writemode', 'append')
end
size(a)```

Adapted from this MATLAB support question. Generates a random 256×256 pixel large image, saves it in the ith slice of a while looping through i. In the same loop MATLAB writes the slice to a tif-File with the 'append' write mode, resulting in a random tif-File with a size of 256x256x100 pixels.

### start matlab headless with some file

```cd filepath
matlab -r file (WITHOUT .m extension!)```

### turn off warning about big images

`warning off Images:initSize:adjustingMag`

### Overlay Image over another one

```Img = imnoise(phantom(64));   % Load 64 pixel wide Phantom and make it noisy
Threshold = graythresh(Img);  % calculate Otsu-Threshold
BW = im2bw(Img,Threshold );   % binarize with above Threshold

Color = [155 188 221] % define overlay colour RGB (this is the unibe-presentation color)

Img = im2uint8(mat2gray(Img)); % separate image into 3 channels
red = Img;
green = Img;
blue = Img;

red(BW) = Color(1);    % populate channels with thresholded image
green(BW) = Color(2);
blue(BW) = Color(3);

Overlay = cat(3, red, green, blue); % make RGB-image

figure % display everything
subplot(131)
imshow(Img,[])
title('Original')
subplot(132)
imshow(BW,[])
title(['Thresholded with: ' num2str(intmax(class(Img))*Threshold) ]); % see http://www.ana.unibe.ch/~haberthuer/matlab#threshold_image
subplot(133)
imshow(Overlay,[])
title('Overlay')```

### Threshold Image

```Img = imread('rice.png');       % read Image
Threshold = graythresh(Img);    % calculate Otsu Threshold of Image
BW = im2bw(Img,Threshold);      % Threshold Image
Bitdepth = intmax(class(Img));  % Get Bitdepth of Image
disp(['Image has been thresholded with ' num2str(Threshold) ' (grayvalue: ' num2str(Bitdepth*Threshold) ')' ]);
figure
subplot(121)
imshow(Img)
title('Original')
subplot(122)
imshow(BW)
title(['Thresholded with: ' num2str(Bitdepth*Threshold) ])```

### Select Components in a (thresholded) Image

```BW = imread('rice.png');        % Load Image
BW = im2bw(BW,graythresh(BW));  % Threshold Image with Otsu

% inform user
wait=helpdlg('Select rice corns in the picture. Stop with right mouse button','Corn Selection');
uiwait(wait)

% open figure (bwselect outputs figure to screen, so we put it in a subplot
% to start with. when right mouse button is pressed, right figure is updated
figure;
subplot(121)
BW2 = bwselect(BW);
subplot(122)
imshow(BW2)```