error-output image black in colour

I have a code below for performing CLD ,i have performed till dct coefficient,ids it correct,please guide,in imshow(J),i get only black colour,please help
my image is rgb
I=imread('dock.jpg');
I=rgb2gray(I)
I=imresize(I,[512 512])% I become lena512
fun = @dct2; %dct2 is assigned as function
J = blkproc(I,[64 64],fun); % blkproc function subblocks the image by 8-8 and usign dct2 function
figure
imshow(uint8(J)) % plot the su

Antworten (1)

Image Analyst
Image Analyst am 19 Jan. 2012

0 Stimmen

What is the type of J? Is it floating point, or complex? Try
imshow(J, []);
instead.

13 Kommentare

Pat
Pat am 20 Jan. 2012
walter the size is 512x512
the matrix has values
0.0002 0.0000 0.0000 0.0001 0.0001 -0.0000 -0.0000 0.0001
-0.0001 -0.0001 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000
0.0001 -0.0000 0.0001 -0.0000 0.0000 0.0000 0.0000 0.0000
-0.0017 -0.0004 0.0002 0.0004 0.0005 0.0012 0.0003 -0.0001
0.0006 0.0004 0.0001 0.0007 0.0003 -0.0011 -0.0008 -0.0003
-0.0003 -0.0000 0.0002 -0.0006 -0.0010 -0.0006 -0.0002 -0.0007
-0.0002 0.0003 -0.0005 -0.0002 0.0010 0.0004 0.0003 0.0004
Walter Roberson
Walter Roberson am 20 Jan. 2012
I'm relatively sure that Image Analyst's legal name is not Walter.
imshow(J, [])
should be able to handle negative and positive values mixed.
Walter Roberson
Walter Roberson am 20 Jan. 2012
By the way, if most of the values are near 0, but one of the values is much more (say near 255), then because the entire range of values must be covered, all of the values near 0 could come out black, and the one much larger value would come out white.
Check max(J(:)) and min(J(:))
Pat
Pat am 20 Jan. 2012
max(J(:))
1.1508e+004
min(J(:))
-2.8087e+003
Image Analyst
Image Analyst am 20 Jan. 2012
That's fine, just know that imshow is linear - it linearly scales your data between 0 and 255 for display. If you have a really skewed distribution or some real outlier values (like salt and pepper noise), you can either reassign them or run your image through imadjust().
Pat
Pat am 22 Jan. 2012
Will i get output as per the link below,since an working on CLD
http://en.wikipedia.org/wiki/Color_layout_descriptor
Image Analyst
Image Analyst am 22 Jan. 2012
No. imshow() simply displays the image - it's not a whole complicated image processing technique like that.
Pat
Pat am 23 Jan. 2012
walter can u tell how to display image as like that
Image Analyst
Image Analyst am 23 Jan. 2012
As like *what*??? We told you how to display images.
Walter Roberson
Walter Roberson am 23 Jan. 2012
I'm still relatively sure that Image Analyst's legal name is not Walter.
Pat
Pat am 23 Jan. 2012
Sorry walter,MR.Image Analyst,as i wikipedia i want those two images ,that i,age divided into 64 blocks,and color representation,if else please can u send the full coding for cld
Image Analyst
Image Analyst am 23 Jan. 2012
I've never used CLD so I don't have any code for it, so you're on your own. Walter's right, though it's a very fine and respectable name, my name isn't Walter.
Pat
Pat am 24 Jan. 2012
OK Image Analyst

Melden Sie sich an, um zu kommentieren.

Gefragt:

Pat
am 19 Jan. 2012

Community Treasure Hunt

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

Start Hunting!

Translated by