Pixel transformation or remapping into new matrix and coordinates?
8 次查看(过去 30 天)
显示 更早的评论
I need solution of my following problem. I have also attached an image for explanation.
Pixel transformation or remapping into new matrix and coordinates![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1096390/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1096390/image.jpeg)
回答(1 个)
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:
- Find non-zero pixel coordinates in the image.
- 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.
- 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.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!