How to remove background from an image?
古いコメントを表示
I want to know how to remove background from an image and edge detection of the rest of the image
採用された回答
その他の回答 (2 件)
Deepak Gala
2017 年 8 月 4 日
0 投票
3 件のコメント
Diah Junaidi
2018 年 8 月 11 日
I got this error: _ *Undefined function 'checkCC' for input arguments of type 'struct'.
Error in regionprops (line 180) checkCC(CC);
Error in bwpropfilt (line 63) props = regionprops(CC, attrib);
Error in bwareafilt (line 34) bw2 = bwpropfilt(bw, 'area', p, direction, conn);
Error in testbgremove (line 9) mask = bwareafilt(mask,1);*_
Here the code:
if true
img = imread('C:\Users\diahj\OneDrive\Pictures\Data Test\11.jpg');
gray = rgb2gray(img);
SE = strel('Disk',1,4);
morphologicalGradient = imsubtract(imdilate(gray, SE),imerode(gray, SE));
mask = im2bw(morphologicalGradient,0.03);
SE = strel('Disk',3,4);
mask = imclose(mask, SE);
mask = imfill(mask,'holes');
mask = bwareafilt(mask,1);
notMask = ~mask;
mask = mask | bwpropfilt(notMask,'Area',[-Inf, 5000 - eps(5000)]);
showMaskAsOverlay(0.5,mask,'r');
h = impoly(imgca,'closed',false);
fcn = makeConstrainToRectFcn('impoly',get(imgca,'XLim'),get(imgca,'YLim'));
setPositionConstraintFcn(h,fcn);
gray = rgb2gray(img);
gray(~mask) = 255;
imshow(gray)
%(The image is of class uint8; 255 is the value of "white" for uint8 images.)
% Break down and mask the planes:
r = img(:,:,1);
g = img(:,:,2);
b = img(:,:,3);
r(~mask) = 255;
g(~mask) = 255;
b(~mask) = 255;
% Reconstruct the RGB image:
img = cat(3,r,g,b);
imshow(img)
shellMask = createShellMask(h,'thickness',3);
imshow(shellMask);
r = regionfill(r,shellMask);
g = regionfill(g,shellMask);
b = regionfill(b,shellMask);
img = cat(3,r,g,b);
imshow(img)
end
Vidhika Sirwani
2020 年 5 月 4 日
gives an error..
undefined variable showMaskAsOverlay
Image Analyst
2020 年 5 月 4 日
Try this:
% Display mask with 50% transparency over the "gray" image.
imshow(gray);
hold on;
h = image(255 * mask);
h.AlphaData = 0.5;
shaadinama
2023 年 5 月 4 日
0 投票
There are several ways to remove the background from an image and perform edge detection on the remaining object. Here are some methods:
Using a photo editing software like Adobe Photoshop or GIMP: You can use the selection tools like Magic Wand, Lasso, or Quick Selection to select the background and delete it. Then, use the Edge Detection filter or tool to highlight the edges of the remaining object.
Using online tools: There are many free online tools like remove.bg, Clipping Magic, or Canva that allow you to remove the background of an image automatically. After removing the background, you can use the image editor in these tools to apply edge detection on the remaining object.
カテゴリ
ヘルプ センター および File Exchange で Image Processing Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
