Changing Variable from logical to double

Fx=edge(I1,'Sobel','vertical',0.001);
While executing above line the follwoing error message is received
"Variable Fx must be of data type double. It is currently of type logical. Check where the variable is assigned a value."
How change Fx type feom logical to double

8 Comments

Adam Danz
Adam Danz on 2 Apr 2020
Edited: Adam Danz on 3 Apr 2020
I don't think that line caused the error. That line just assigns the output to Fx. If the answer I provided doesn't solve the problem please provide the full copy-pasted error message.
Variable img_heq must be of data type uint8. It is currently of type double. Check where the variable is assigned a value.
This error message doesn't match the error message in your question. It references a different variable name and describes a different error.
It also doesn't appear to be a complete error message showing the line number and other impotant bits of information.
I have modified it as
Gx=[-1,0,1;-2,0,2;-1,0,1];
Fx=conv2(I,Gx);
Now it is showing the following error
Variable Fx must be of size [500 500]. It is currently of size [502 502]. Check where the variable is assigned a value.
1) What is I?
2) Are you using Matlab's conv2() or are you using a different function with the same name? To verify, run,
which conv2
3) Again, I don't think you're sharing the full error message (all of it).
1) A=img;T=rgb2gray(A); I = double(T);
2) Yes Matlab's conv2()
3) It is a error message generated under coursera Matlab valiation
Again, it makes no sense to me why this line
Fx=conv2(I,Gx);
would generate this specific error
Variable Fx must be of size [500 500]. It is currently of size [502 502] . . . . .
That line is merely assigning the output to variable Fx. I think the error is being generated somewhere else in a line where you're using the variable Fx. Could you provide a screenshot of the error and the code that causes the error? I'm unfamiliar with Coursera Matlab - does that mean you are running matlab online through a coursera portal or are you running Matlab on your computer using a license provided by Coursera?
If the output has an unexpected size, read about the conv2 output size here.
To show that the code should not cause an error (given a proper image file), this runs fine:
RGB = imread('peppers.png'); % Built-in matlab file
I = rgb2gray(RGB);
Gx=[-1,0,1;-2,0,2;-1,0,1];
Fx=conv2(double(I),Gx);

Sign in to comment.

 Accepted Answer

Adam Danz
Adam Danz on 2 Apr 2020
Edited: Adam Danz on 6 Apr 2020
"How change Fx type from logical to double"
FxDlb = double(Fx);
alternatively,
FxDlb = Fx * 1;
% or
FxDlb = Fx + 0;

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!