Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions concerning problems with code you've written must describe the specific problem — and include valid code to reproduce it — in the question itself. See SSCCE.org for guidance.
Closed 9 years ago.
Improve this question
I am new to image processing and am trying to learn few concepts by practically implementing certain functions. I heard about creating eigen images of an image, so tried to implement the same, to actually know what they are and what properties they alter.
Thus I obtained the eigen vectors using the eig function in matlab. How can I display these eigen images using the vector? Please forgive me if the question is wrong or rudimentary. Your help is much appreciated.
Assuming you have several images of size r x c, then taken the steps described on wikipedia, you should now have eigenvectors ev1, ev2 ... of length r x c.
If this is the case, it should be fairly easy to turn these into images again:
myImage1 = reshape(ev1,r,c);
Check whether r and c are in the right order and whether you need to transpose, but this is basically it.
For showing them you may want to look into surf or image.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
While solving a puzzle, I ended up having a complexity of T(n)=T(n-3)+T(n-5).
I was trying subtraction method. But I am unable to solve this. Please explain what should be the procedure.
This is a linear homogeneous difference equation with constant coeffs.. It is usually solved by transforming it to the complex plane and solving a polynomial.
Without a CS background (as you state), I'm afraid the details wouldn't fit in here. Start with the Wikipedia entry, if you're interested.
If you want to skip to the final solution, here is the Wolfram Alpha for it.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I am implementing an image segmentation algorithm, at some point I need to implement a function named "Danielsson Function" which 'transforms a binary image into a grayscale distance map in which each particle pixel is assigned a gray-level value equal to its shortest Euclidean distance from the particle border'.
I'm not an expert in image processing and the only way I can imagine is using a BFS algorithm for every pixel but that would take ages.
I couldn't find much in web, so I want to know is there any optimized way to implement this or is there any Matlab/Octave function that can do such thing?
you can simply do that by using the "bwdist" matlab function, as the comments mentioned
and here is the link for help if you needed any :
Distance transform of binary image - MATLAB bwdist
And here is the code :
I=uint8(bwdist(some_binary_image))
Be sure to use the 'uint8' because 'bwdist' only gives you the distance matrix which has double number values.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
In Matlab using the rand routine, how should I write the code to generate 500 samples from an exponential distribution, whose pdf is:
(1/mu)*exp(-x/mu); x>=0
Assuming you really have to do it using the rand function: exploit the property that the minus logarithm of a normalized uniform RV is a normalized exponential RV:
samples = -mu*log(rand(1,500));
Use random function.
For example to create a 4*6 matrix with mu=1.3 with an exponential distribution use:
random('Exponential',1.3,4,6)
or
random('exp',1.3,4,6)
If you have the Statistic toolbox you can simply use exprnd much like you use rand:
r = exprnd(mu);
where the size of r will be the size of the mean, mu, or
r = exprnd(mu,m,n);
where mu is a scalar mean, and m and n are the size of your desired output. If you type edit exprnd, you'll see that the code is virtually identical to that kindly provided by #LuisMendo. You might find the other functions related to the exponential distribution helpful to, such as exppdf and expcdf. These are simple as well and implement basic equation that you can find in your textbook or on Wikipedia.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question appears to be off-topic because it lacks sufficient information to diagnose the problem. Describe your problem in more detail or include a minimal example in the question itself.
Closed 8 years ago.
Improve this question
I am doing an introduction course in MATLAB (I am a beginner) and I'm having trouble solving an issue regarding an equation of matrices.
The equation is
AX = C - BX
I want to solve for the matrix X. No matter how I have tried to solve it I come up either empty handed or with some sort of a syntax error. I think I am missing something fundamental.
Any help on the subject is very much appreciated.
For this equation to be consistent, A and B must have the same size. Therefore, you can re-write your equation as:
(A+B)X = C
This can be solved in MATLAB with:
X = (A+B)\C
Note that this will always find a solution, regardless of the size of A+B:
If A+B is square, you'll find "the" solution.
if A+B is over/underdetermined, it will return a least-squares approximation to X.
It's up to you to decide whether this is desirable or not.
In case C is zero, you might want to use null (or look at svd).
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I have a function, dependant on a vector k=(x,y,z) and a function f(x,y,z)=0, I would like to find the solution space for (x,y,z).
Can this even be done analytically in matlab? I imagine it can be done numerically because my initial thought was to plot the surface created by this function, however this is of no use to me as I have 9 other constants in my equation with no numerical value assigned to them. Many thanks in advance for any help.
EDIT: This is for a polynomial degree 4.
There are no generic, analytical solvers for given function f(x,y,z) neither in matlab, nor in any other language. If such solution would exist, the Riemann hypothesis (and dozens others) would be solved ;)
For simple problems you could use symbolic math toolbox and a solve function:
http://www.mathworks.com/help/symbolic/solve.html
And obbiously there are numerical solvers, which you can use like vpasolve and others
http://www.mathworks.com/help/symbolic/vpasolve.html