MATLAB Answers

xi
0

How to add a scale bar on an image that will changes automatically with zoom in/out

xi
さんによって質問されました 2019 年 7 月 3 日
最新アクティビティ xi
さんによって コメントされました 2019 年 7 月 4 日
Given an microscopy image, I want to add a scale bar on the bottom left or right corner of the image. This is not hard to do.
But when I zoom in to a small area of the image, the bar will go out of the screen. I want the scale bar to automatically adjust its length acording to the zoom ratio, and also a suitable label (e.g., 10um --> 5um --> 2um) and stay inside the image when I zoom in. How to realize it? I was trying to use the zoom(on) that enables the zoom tool of my axes, but then where to write the callback function that allows me to draw the scale bar everytime the mouse button (or scrollwheel) is clicked?

  0 件のコメント

サインイン to comment.

1 件の回答

Image Analyst 님의 답변 3 Jul 2019

Try burning it into the image:
grayImage(row1:row2, column1:column2) = 255;
but if you pan, the bar may move out of the field of view. Otherwise you'll have to use rectangle() and each time you zoom or pan, you'll have to delete the old one, figure out the new size, and the new location, and draw a new one.

  1 件のコメント

I think, I found the answer: use "ActionPreCallback", "ActionPostCallback" to find out the previous and current zoom ratio, and update the drawing of the scale bar. You are right that, I will have to delete the old one, figure out the size and location and draw a new one.

サインイン to comment.



Translated by