How can I show 10 pixels width in all directions for an image?

1 次查看(过去 30 天)
I am trying to find a block of the image, such as, the perimeter of the image, 10 pixels width in all directions. Can you please advise?

采纳的回答

Walter Roberson
Walter Roberson 2021-6-2
img = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/638445/download.jpg');
n = floor(size(img,2)/2);
leftb = imbinarize(rgb2gray(img(:,1:n,:)));
left = repmat(im2uint8(leftb), [1 1 size(img,3)]);
right = img(:,n+1:end,:);
newimg = [left,right];
imshow(newimg)

更多回答(1 个)

Adam Danz
Adam Danz 2021-6-1
编辑:Adam Danz 2021-6-2
Clarified question in comment below:
> want to display the same image below but half colored and half binary!
Follow the steps in this blog.
figure();
tiledlayout(1,3,'Padding','none','TileSpacing','tight')
rgb = imread('download.jpg');
nexttile()
imshow(rgb);
title('Original image')
nexttile()
imshow(rgb);
I = rgb2gray(rgb);
hold on
h = imshow(I);
[M,N] = size(I);
halfway = round(N/2);
alpha_data = [ones(M,halfway),false(M,N-halfway)];
set(h, 'AlphaData', alpha_data);
title('Half grayscale')
nexttile()
imshow(rgb);
BW = imbinarize(I);
hold on
h = imshow(BW);
[M,N] = size(I);
halfway = round(N/2);
alpha_data = [ones(M,halfway),false(M,N-halfway)];
set(h, 'AlphaData', alpha_data);
title('Half binary')
  13 个评论
Adam Danz
Adam Danz 2021-6-2
Your comment above is clear. If that image was shared from the beginning, it would have save lots and time and back-and-forth Q&A.
But I still don't know what that has to do with your original question, "How can I show 10 pixels width in all directions for an image?"

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Convert Image Type 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by