How Can I Take the Inverse of an Image Matrix in MATLAB?

Click For Summary
SUMMARY

The discussion centers on taking the inverse of an image matrix in MATLAB using the functions imread and inv. The user encountered an error due to attempting to apply inv on a uint8 array, which is incompatible. The solution provided involves converting the image matrix to double-precision floating-point format using double(A) before applying inv. This ensures that the matrix is in the correct format for inversion.

PREREQUISITES
  • Understanding of MATLAB programming language
  • Familiarity with image processing functions in MATLAB
  • Knowledge of data types in MATLAB, specifically uint8 and double
  • Basic concepts of matrix operations, particularly matrix inversion
NEXT STEPS
  • Learn about MATLAB's imread function and its output formats
  • Research the implications of data type conversion in MATLAB
  • Explore matrix operations in MATLAB, focusing on inv and its requirements
  • Investigate image processing techniques in MATLAB for manipulating image matrices
USEFUL FOR

MATLAB users, image processing enthusiasts, and developers looking to manipulate image matrices and perform matrix operations effectively.

Az83
Messages
7
Reaction score
0
I'm trying to take the inverse of an image matrix by doing the following:

>> A=imread ('noise.jpg');
>> inv(A)

But I'm getting the following error:

? Undefined function or method 'inv' for input arguments of type 'uint8'.

How can I change the image matrix so that I can take the inverse of it?
 
Technology news on Phys.org
Erm what?! hah

well what lanagauge is that?! Matlab?
maby try inv('noise.jpg') :S

hmmm i duno not sure would be easier to know what language your doing it in and what functions or methods you have available.
 
If this is C++, you must be using some non-standard add-on library. imread() and inv() are not standard C++ functions, as far as I know.
 
Az83 said:
I'm trying to take the inverse of an image matrix by doing the following:

>> A=imread ('noise.jpg');
>> inv(A)

But I'm getting the following error:

? Undefined function or method 'inv' for input arguments of type 'uint8'.

How can I change the image matrix so that I can take the inverse of it?
I recognise this as MATLAB. It would have helped if you had said so.

imread() takes an image file and returns an N x M x 3 array of 8-bit unsigned integers. inv() expects an N x N array of floating points.

I have to ask why would you want to invert an image array? I don't understand the point.
 
I also don't understand why you'd want the matrix inverse of an image, but you can use this:

inv(double(A))

You just need to convert the array to the double-precision floating-point datatype before inv() will know what to do with it.

- Warren
 

Similar threads

Replies
2
Views
2K
  • · Replies 23 ·
Replies
23
Views
7K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K