Shifting origin

17 次查看(过去 30 天)
Siddharth Mallya
Siddharth Mallya 2011-3-22
Hey guys !
I want to move the origin of my axis at (x,y) of the non-standard coordinate space .. How do I go about it ? I know the function is axis (x,y) but nothing seems to be happening ..
I want to move the origin at (73, 941) of the image .. Got it from the the impixelinfo () ..
  3 个评论
Walter Roberson
Walter Roberson 2011-3-22
size(img,1) is the number of rows in img, which corresponds to the *Y* coordinate; likewise size(img,2) corresponds to the *X* coordinate.
Navodita Das
Navodita Das 2020-5-13
Suppose, an image contains red point in it. Can I set that red point as origin of coordinate system?

请先登录,再进行评论。

采纳的回答

Siddharth Mallya
Siddharth Mallya 2011-3-25
I actually did this finally. I scan the image left-to-right and top-to-bottom and stop the moment I find a different pixel than the background. Since I am using im2bw(); the background is white and the character pixel are black.
The moment I find the first black pixel, I store the pixel co-ordinates in 2 variables fr and fc. I then use these variables for further computation (i.e. constructing the grid)
  5 个评论
Walter Roberson
Walter Roberson 2011-3-26
Ah, normally 1 is the foreground. For your use,
fc = find(~all(Image,1),1,'first');
fr = find(~all(Image,2),1,'last');
Siddharth Mallya
Siddharth Mallya 2011-3-26
fr1 =
Empty matrix: 0-by-1
fc1 =
Empty matrix: 1-by-0
Damn it !

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2011-3-22
Does the entire figure have to be affected, or just one axis, or a set of axis (such as used for plotyy) ?
Please indicate what exactly needs to be changed -- for example, is it okay if it just looks like the origin is there on the plot, or do you need to be able to specify other plotting locations relative to the new origin?
If you are just concerned about appearance, then you may be able to modify one of the Matlab File Exchange contributions such as axescenter or PlotAxisAtOrigin.
If you need the entire coordinate system changed then probably the easiest way I can think of would be to create a handle graphics transform that translated by the negative of the new coordinates.
  5 个评论
Walter Roberson
Walter Roberson 2011-3-22
Well, tell it to plot timg after you trim off the part you don't need.
Sorry, my timezone is GMT-5 now, so it is about quarter after one in the morning and time for me to go to bed. And I don't Skype or Google Voice.
Siddharth Mallya
Siddharth Mallya 2011-3-22
Oh I meant like chat. But that's okay. Anyway, like I was saying, using img = img(1:941,73:end);
did not change anything .. (i used the same variable 'img' so I wont have to change the rest of the instances in the program)

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by