彩色图像处理(matlab)

博客围绕RGB图像编程处理展开,包含实现RGB彩色空间分割算法、从RGB图像转换为灰度图像的函数,以及RGB转HSI的内容,均属于图像处理领域的信息技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、编程实现RGB彩色空间分割算法

clc,clear
rgb=imread('花朵.jpg');
rgb1=im2double(rgb);
r=rgb1(:,:,1);
g=rgb1(:,:,2);
b=rgb1(:,:,3);
%在红色分量中选择一块矩形区域
r1=r(200:310,400:500);
%矩形区域的均值
r1_u=mean(mean(r1(:)));
[m,n]=size(r1);
%计算标准差
sd1=0.0;
for i=1:m
    for j = 1:n
        sd1=sd1+(r1(i,j)-r1_u)*(r1(i,j)-r1_u);
    end
end
r1_d=sqrt(sd1/(m*n));
r2=zeros(size(rgb1,1),size(rgb1,2));
%找到符合条件的点
ind=(r>r1_u-1.25*r1_d)&(r<r1_u+1.25*r1_d);
%符合条件的点灰度设为1
r2(ind)=1;
rgb2=rgb1;
[m2,n2]=size(r2);
for i =1:m2
    for j =1:n2
        if r2(i,j)==0
            rgb2(i,j,:)=0;
        end
    end
end

figure
subplot(2,3,1),imshow(rgb1),title('RGB原始图像')
subplot(2,3,2),imshow(r),title('R分量')
subplot(2,3,3),imshow(g),title('G分量')
subplot(2,3,4),imshow(b),title('B分量')
subplot(2,3,5),imshow(r2),title('红色分割')
subplot(2,3,6),imshow(rgb2),title('根据红色分割')

二、编程实现从RGB图像转换为灰度图像的函数

rgb1=imread('花朵.jpg');
[rows , cols , colors] = size(rgb1);
Gray = zeros(rows , cols);
Gray = uint8(Gray); 
for i = 1:rows  
    for j = 1:cols  
        sum = 0;  
        for k = 1:colors  
            sum = sum + rgb1(i , j , k) / 3;
        end  
        Gray(i , j) = sum;  
    end  
end   
  
figure;
subplot(131);
imshow(rgb1);  
subplot(132);
imshow(rgb2gray(rgb1));title('系统自带函数')  
subplot(133);
imshow(Gray);title('自写函数')  

三、RGB转HSI

%hsi2rgb
function hsi = rgb2hsi(rgb) 
%  	实现从RGB到HSI的转换
%	输入:rgb向量矩阵
%	输出:hsi向量矩阵
rgb = im2double(rgb); 
r = rgb(:, :, 1); 
g = rgb(:, :, 2); 
b = rgb(:, :, 3); 
% Implement the conversion equations. 
num = 0.5*((r - g) + (r - b)); 
den = sqrt((r - g).^2 + (r - b).*(g - b)); 
theta = acos(num./(den + eps)); 
H = theta; 
H(b > g) = 2*pi - H(b > g); 
H = H/(2*pi); 

num = min(min(r, g), b); 
den = r + g + b; 
den(den == 0) = eps; 
S = 1 - 3.* num./den; 
H(S == 0) = 0; 
I = (r + g + b)/3;
% Combine all three results into an hsi image. 
hsi = cat(3, H, S, I);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值