Hi folks,
I am calling a self-made function as follows:
ir = rotateAround(ig, Cy, Cx, Angle_DEG);
But the last variable, Angle_DEG, has no value so I get an error when calling this function. Angle_DEG is returned bu a different function as:
[Angle_DEG, LinePoint1, LinePoint2] = RotatedAngle(RawImages, files, xmin, ymin, CropH, CropW, a, i);
where rotatedAngle is returning all outputs without an actual numeric value…Any ideas why this might be please? The function is defined as follows:
function [ Angle_DEG, LinePoint1, LinePoint2] = RotatedAngle( RawImages, files, xmin, ymin, CropH, CropW, a, i )%UNTITLED Summary of this function goes here
% Detailed explanation goes here
% Finding the angle for auto rotation of the image
% Then recropping to remove the black edges due to rotation
%% Finding the Image rotation based on the initial image %% file_name = files(i).name; im = imread([RawImages '\' file_name]); ig = rgb2gray(im(:,:,1:3)); I = imcrop(ig,[xmin(i) ymin(i) CropW(a) CropH(a)]); %%% Using edge detection %%%
Bw = imbinarize(I, 24/255); IE = edge(Bw,'canny'); %imshow(IE);
%IE = edge(I,'canny',0.25); %IE = edge(I,'canny',0.23)
%% Getting data points for the tile %%
% (X1,Y1) Point on the left
X1 = round((size(IE,2))*1/10); X1line = IE(:,X1); Y1s = find(X1line==1,500); Y1s(Y1s == 0) = inf; LinePoint1 = max(Y1s,[],1); % (X2,Y2) Point on the right
X2 = round((size(IE,2))*9/10); X2line = IE(:,X2); Y2s = find(X2line==1,500); Y2s(Y2s == 0) = inf; LinePoint2 = max(Y2s,[],1); %Y2Table(i) = Y2;
%Angle between the line and the horizontal
Coordinates = [X1,LinePoint1;X2,LinePoint2]; Dist = pdist(Coordinates,'euclidean'); % not necessary
Angle_DEG = atan2(LinePoint2-LinePoint1,X2-X1)*180/pi;end
Best Answer