Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- img = imread("C:\Users\maxim\OneDrive\Изображения\doggo.png");
- imgGray = rgb2gray(img);
- imgSize = size(img);
- numRows = imgSize(1);
- numCols = imgSize(2);
- waveLengthMin = 4 / sqrt(2);
- waveLengthMax = hypot(numRows, numCols);
- n = floor(log2(waveLengthMax / waveLengthMin));
- waveLength = 2.^(0:(n - 2)) * waveLengthMin;
- deltaTheta = 45;
- orientation = 0:deltaTheta:(180 - deltaTheta);
- g = gabor(waveLength, orientation);
- gabormag = imgaborfilt(imgGray, g);
- for i = 1:length(g)
- sigma = 0.5*g(i).Wavelength;
- K = 3;
- gabormag(:,:,i) = imgaussfilt(gabormag(:,:,i),K*sigma);
- end
- X = 1:numCols;
- Y = 1:numRows;
- [X, Y] = meshgrid(X, Y);
- featureSet = cat(3, gabormag, X);
- featureSet = cat(3, featureSet, Y);
- numPoints = numRows * numCols;
- X = reshape(featureSet, numRows * numCols, []);
- X = bsxfun(@minus, X, mean(X));
- X = bsxfun(@rdivide, X, std(X));
- coeff = pca(X);
- feature2DImage = reshape(X*coeff(:, 1), numRows, numCols);
- L = kmeans(X, 2, 'Replicates', 5);
- L = reshape(L, [numRows numCols]);
- Aseg1 = zeros(size(img), 'like', img);
- Aseg2 = zeros(size(img), 'like', img);
- BW = L == 2;
- BW = repmat(BW, [1 1 3]);
- Aseg1(BW) = img(BW);
- Aseg2(~BW) = img(~BW);
- figure, imshowpair(Aseg1, Aseg2, 'montage');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement