MATLAB Answers

0

imcrop function problem for 16bit image 2019b

Asked by Meshooo on 20 Sep 2019
Latest activity Commented on by Meshooo on 18 Oct 2019
Dear all,
The following imcrop code gives an error in 2019b
I = imread('XX.tif');
[Icrop, rect] = imcrop(I, [ ]);
It seems that 2019b does't support [ ] with imcrop. If you are working with 16 bit images then you will be in trouble because you need to see the image before croping it, and for that you need to put the [ ].
Any idea how to overcome this problem?
Thank you in advance.
Meshoo

  6 Comments

What is it that you intend the [] to mean to imcrop? The function has two possible arguments at that point: colormap or rect specification. Which one do you intend by the []?
Hi Walter,
I couldn't understand exactly what do you mean. I am just runing my old codes in 2019 and got an error.
People working with uint16 images usually use [ ] to show the image on their screens, for example: imshow(I_unit16, [ ]).
Similarly, we need to use [ ] when croping uint16 image in order to dispaly the image before cropping it. That was possible in older versions of MATLAB but not in 2019b.
Regards,
Meshoo
Please name a particular release that documents using [] as a parameter to imcrop() . I looked through the archived documentation for several releases and could not find any evidence that it was ever a supported option.
Similarly, we need to use [ ] when croping uint16 image in order to dispaly the image before cropping it.
So display the image with imshow() with the documented [] option, and call imcrop() on the handle returned by imshow:
h = imshow(I, []);
[Icrop, rect] = imcrop(h);

Sign in to comment.

1 Answer

Answer by Walter Roberson
on 12 Oct 2019
 Accepted Answer

h = imshow(I, []);
[Icrop, rect] = imcrop(h);

  9 Comments

Thanks for your suggestions, Image Analyst and Walter. I think bug report would be a better choice. Although it is a very simple problem, but I think many other poeple will face the same problem, and already the user Sahar Tavakoli faced the same problem and commented to this post.
I am not familiar with making bug reports, if anyone would like to do it then very appreciate it.
regards,
Meshoo
Then you'll be making a lot of bug reports. There is a constant flow of functions either changing inputs, being deprecated, or being removed completely as versions progress through the years. I don't see how that, either filing bug reports or writing a custom wrapper and calling that from your code, is any better than just hitting the delete key 3 times.
For me it's already solved and thanks for the many help I got from all of you. For many other users it is still an issue.

Sign in to comment.