MATLAB Answers

I have to plot some lines over an image. Lines are rotated, so to align them with image I used camroll(-90). But now the whole image is rotated.

5 views (last 30 days)
md khan
md khan on 16 Apr 2020
Commented: Ameer Hamza on 16 Apr 2020
Here is my code:
U = load('C:\Users\khan1\jupyter_test_code\CRBD\TMGEM results\crop_row_001.tmg');
O = imread('C:\Users\khan1\jupyter_test_code\CRBD\Images\crop_row_001.JPG');
h1 = figure;
imshow(O);
figure(h1)
ax = gca;hold on;
plot(ax,U,'color','red','LineWidth',1);
camroll(ax,-90);
Here is the output I am getting. As you can see, lines are not aligned with the green leaves.
Link for .tmg and .jpg files:
https://drive.google.com/open?id=1dIMlWPMGYuv9QAox24UQ4dLAyyTVfXsb

Accepted Answer

Ameer Hamza
Ameer Hamza on 16 Apr 2020
Use the rotate function to just rotate the axis while keeping the figure at its location: https://www.mathworks.com/help/matlab/ref/rotate.html
U = load('C:\Users\khan1\jupyter_test_code\CRBD\TMGEM results\crop_row_001.tmg');
O = imread('C:\Users\khan1\jupyter_test_code\CRBD\Images\crop_row_001.JPG');
h1 = figure;
imshow(O);
figure(h1)
ax = gca;hold on;
p = plot(ax,U,'color','red','LineWidth',1);
rotate(p, [0 0 1], -90);
If there is some issue, attach the image and variable 'U' in a .mat file.

  6 Comments

Show 3 older comments
Ameer Hamza
Ameer Hamza on 16 Apr 2020
Run this
img = imread('crop_row_001.JPG');
data = load('crop_row_001.tmg');
imshow(img);
hold on
plot(data, 1:size(data,1), 'r', 'LineWidth', 2)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!