K-means 处理 RGB 图像
来源:互联网 发布:mac怎么创建压缩文件夹 编辑:程序博客网 时间:2024/06/12 04:04
代码:
clear all;close all;clc;im = imread('yy.jpg');imr = im(:,:,1);img = im(:,:,2);imb = im(:,:,3);[m,n] = size(imr);% set the parametersk = 4;tic;[mur,outlabelr,Jr] = dckmeans(imr,k,40);[mug,outlabelg,Jg] = dckmeans(img,k,40);[mub,outlabelb,Jb] = dckmeans(imb,k,40);toc;% get mumu = [mur; mug; mub];for i = 1:m for j = 1:n outim(i,j,1) = mu(1,outlabelb(i,j)); outim(i,j,2) = mu(2,outlabelb(i,j)); outim(i,j,3) = mu(3,outlabelb(i,j)); endendfigure, imshow(im);figure, imshow(uint8(outim));
其中dckmeans为:
function [mu,outlabel,J] = dckmeans(im,k,N)copyim = im;%im = im + 1;% set the parameters[m,n] = size(im);% initializationmu = zeros(1,k);for i = 1 : k mu(i) = 255./i;endh = zeros(1,max(im(:)));y = zeros(1,max(im(:)));l = length(h);for i= 1:m for j=1:n h(im(i,j)) = h(im(i,j))+1; endend% start the iterationfor r = 1:N for i = 1:l for j = 1:k delta(j) = abs( i - mu(j)); end minloc = find(delta == min(delta)); y(i) = minloc(1); end % for j = 1:k a = find(y==j); mu(j) = sum(a.*h(a))./sum(h(a)); end % J(r) = 0; for i = 1:l J(r) = J(r) + abs( i - mu(y(i))).*h(i); end %if(J(r)-J(r-1)<J(r)*0.000001) % break; %endendfigure,plot(1:length(J),J);% Outputoutlabel= zeros(m,n);for i =1:m for j= 1:n outlabel(i,j) = y(copyim(i,j)+1); endend
0 0
- K-means 处理 RGB 图像
- 图像处理之K-Means算法演示
- 图像处理之K-Means算法演示
- 【图像处理】K-means聚类算法
- 图像处理------K-Means算法演示
- 图像处理之K-Means算法演示
- K-means++ 图像分割
- K-means、图像分割
- [cs229] k-means 图像压缩
- VC++ K-Means 图像二值化
- K-means对图像进行分类
- [图像] K-means聚类(视觉单词)
- 图像处理 YCbCr转RGB
- 图像处理-RGB转灰度
- 彩色图像处理(RGB图像)
- K-Means
- k-means
- K-means
- java初始化顺序
- 【sql server】SQL触发器
- 安装archlinux+cinnamon笔记
- 工厂方法
- 华为OJ(求最大连续bit数)
- K-means 处理 RGB 图像
- java 对新浪微博微博的发表时间解析
- (树型dp,数论)多校7 Mahjong tree
- Android Studio 初次使用
- HDU 1013.Digital Roots【模拟或数论】【8月16】
- NYOJ 1092 数字分隔(二)
- stringstream用法
- Android WebView 常见的九个问题
- POJ3244-数学公式