Pixel transformation or remapping into new matrix and coordinates?

7 ビュー (過去 30 日間)
Imran Riaz
Imran Riaz 2022 年 8 月 12 日
回答済み: Udit06 2023 年 11 月 17 日
I need solution of my following problem. I have also attached an image for explanation.
Pixel transformation or remapping into new matrix and coordinates
  1 件のコメント
Chris
Chris 2022 年 9 月 9 日
That image is difficult to read, but would imwarp help?

サインインしてコメントする。

回答 (1 件)

Udit06
Udit06 2023 年 11 月 17 日
Hi Imran,
I understand that you want to map the non-black pixels of your image to new coordinates. You can follow the following steps to do the same:
  1. Find non-zero pixel coordinates in the image.
  2. Define the transformation function that takes the row and column indices as inputs and returns the new row and column indices. Apply this transformation function to each non-zero pixel coordinate.
  3. Initialize a new image with the same size as the original image and set all pixels to black (zero values). Assign the non-zero pixel values from the original image to the new coordinates in the new image.
Following is the code implementation of the steps suggested above.
% Reading the image with a given filePath
image = imread(filePath);
% Find Non-Zero Pixel Coordinates
[row, col] = find(image ~= 0);
% Map Pixel Coordinates to New Coordinates where t is the transformation function
[new_row, new_col] = t(row, col);
% Create a New Image with Mapped Pixel Values
new_image = zeros(size(image));
num_nonzero_pixels = numel(row);
for i = 1:num_nonzero_pixels
new_image(new_row(i), new_col(i)) = image(row(i), col(i));
end
new_image=uint8(new_image);
% Display the New Image
imshow(new_image);
I hope this helps.

カテゴリ

Help Center および File ExchangeRead, Write, and Modify Image についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by