フィルターのクリア

Info

This question is locked. 編集または回答するには再度開いてください。

How to incorporate scatter function so that the lines of the image don't print on top of one another

36 ビュー (過去 30 日間)
Hayley Devine
Hayley Devine 2024 年 6 月 28 日 20:00
Locked: Rena Berman 2024 年 7 月 10 日 13:38
I have this code to take x.y,z coordinates to make an x-ray image. The lines of the image just print on top of one another. I want to use the scatter function so that the lines of the image make a full picture. How and where would I add this?
Here is my code:
data = readmatrix('C:\Users\devineh\Chest_XRay_Raw_Data.txt');
% Extract x, y, z coordinates and grayscale values
x = data(:,1);
y = data(:,2);
z = data(:,3); % If needed, otherwise ignore
grayscale = data(:,4);
%Normalize points
x = round(x - min(x) + 1);
y = round(y - min(y) + 1);
%Find bounds
x_range = min(x):max(x);
y_range = min(y):max(y);
% Initialize the image matrix
image = zeros(length(y_range), length(x_range));
% Populate the image matrix with grayscale values
for i = 1:length(x)
x_idx = find(x_range == x(i));
y_idx = find(y_range == y(i));
image(y_idx, x_idx) = grayscale(i);
end
%normalize image
image = mat2gray(image);
% Display the image
imshow(image);
title('Reconstructed Image from Raw Data');
  2 件のコメント
Image Analyst
Image Analyst 2024 年 6 月 29 日 15:43
If you have any more questions, then attach your data ('C:\Users\devineh\Chest_XRay_Raw_Data.txt') with the paperclip icon after you read this:

回答 (1 件)

Walter Roberson
Walter Roberson 2024 年 6 月 28 日 21:00
You are not going to be able to do what you want. Your data points are not at integer locations relative to each other; they are 0.17 apart in X.
  1 件のコメント
Walter Roberson
Walter Roberson 2024 年 6 月 29 日 2:37
One possibility would be to use something like
N = 256;
x = data(:,1);
y = data(:,2);
grayscale = data(:,4);
[minx, maxx] = bounds(x);
[miny, maxy] = bounds(y);
binx = discretize(x, linspace(minx, maxx, N));
biny = discretize(y, linspace(miny, maxy, N));
for i = 1 : length(binx)
gray_image(binx(i), biny(i)) = grayscale(i));
end

This question is locked.

Community Treasure Hunt

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

Start Hunting!

Translated by