Bckground subraction using k means
4 次查看(过去 30 天)
显示 更早的评论
I have tried background subtraction algorithm using k means with matlab. Step 4 and 5 are difficult to understand. kinldly check and do the needful1: Idown ←Down-sample the image to 25% of its original size using
simple linear interpolation.
clc;
clear;
close all;
I = imread ('45.jpg');
Idown=imresize(I,[256,256]);
2: Get the S channel of Idown and consider it as an 1-d vector V of
pixel intensities.
I_hsv = rgb2hsv(Idown);
HSV_s = I_hsv(:,:,2);
HSV_s_1 = HSV_s(:);
3: Perform Dbin ←K-Means(V, k = 2).
Dbin = kmeans(HSV_s_1,2);
4: MapM ← Dbin back to image space. For that just do a linear scan
of Dbin.
please help this step ( how to do linear scan?)
5: Mup ←Up-sample the generated binary mapMback to the input
image size.
please help this step
6: Close small holes on Mup using the Closing morphological operator
with a disk structuring element of radius 7 pixels.
se = strel('disk', 7)
closeBW = imclose(Mup,se);
**********************************************************
Please check the above steps and do the needful
0 个评论
采纳的回答
Image Analyst
2019-2-18
Since the color of the objects is nearly the same color as the background, I would probably not use color segmentation or kmeans. I'd probably use stdfilt() to identify "rough" things. The background will be smooth so you can then threshold it away.
3 个评论
Image Analyst
2019-2-22
Attached is a start. try playing with the parameters to see if you can optimize it.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!