find intersection between matrix and draw line on a figure
2 ビュー (過去 30 日間)
古いコメントを表示
Dear all,
I have a 360X300 matrix that represent fluorescent intensities along the line. Each cell in a column (1:360), has a certain intensity value that changes in time (rows 1:300). The fluorescent signal is slightly moving through time, so at time 0 is in column e.g., 2, than in time point 2, it is in column 5, etc. I would like to draw the line on top of the figure tracing the position of the signal at each time frame, so get the information about the position of the signal at each time frame, i.e. time1 - position 5 time2 - position 7 time3 - position 9, etc.
The signal is noisy so it has to be done manually, this way, no peak finding or similar. I used imfreehand but is gives me information about XY coordinates and not the exact [row column].
Thanks in advance, jakub
0 件のコメント
採用された回答
Image Analyst
2014 年 8 月 29 日
You forgot to post your image. Assuming you can segment out your cell then you just get (x,y) or (column, row) of the spot you want to track/trace and call
plot(x,y, 'r*-', 'MarkerSize', 5, 'LineWidth', 2);
Adjust options as desired.
By the way, imfreehand does give you the x,y coordinates in terms of column, row that are actual for the original full size image, not the on-screen pixels. See attached demo which has code like this:
% User draws curve on image here.
hFH = imfreehand();
% Get the xy coordinates of where they drew.
xy = hFH.getPosition
% get rid of imfreehand remnant.
delete(hFH);
% Overlay what they drew onto the image.
hold on; % Keep image, and direction of y axis.
xCoordinates = xy(:, 1);
yCoordinates = xy(:, 2);
plot(xCoordinates, yCoordinates, 'ro', 'LineWidth', 2, 'MarkerSize', 10);
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!