计算机开机后背景变白,大家帮忙图像二值化后为什么背景变成了白色,目标变成........

求助:大家帮忙看看程序有什么问题,图像转换到YCbCr空间后,二值化图像背景变成了白色。

我想让目标变成白色,背景变成黑色。

%读取图像

f=imread('hd0.bmp');

%光线补偿

h=sort(f(:),'descend');     %像素值排序

v=mean(h(1:round(length(h)*0.05))); %最亮前%5的像素平均值

b=f*(255/v);                %按(255/v)系数补偿

figure(1);subplot(121),imshow(f);title('原始图像');

subplot(122),imshow(b);title('光线补偿后图像');

%将RGB转换为YCbCr

g = rgb2ycbcr(f); %YCbCr変換

Y =g(:,:,1); %Y成分

Cb = g(:,:,2); %Cb成分

Cr=g(:,:,3); %Cr成分

figure(2);subplot(2,2,1);imshow(f);title('原始图像');

subplot(2,2,2);imshow(Y);title('Y成分');

subplot(2,2,3);imshow(Cb);title('Cb成分');

subplot(2,2,4);imshow(Cr);title('Cr成分');

%三通道灰度直方图

[m,n,p]=size(Cb);   %对于二维数组来说,它的size是指它的行数和列数;三维数组是指它的各个维的维度,可以理解为m行,n列和p层,即一共有m*n*p个元素

%a=zeros(1,256);  %a为一个1行,256列的全0矩阵

b=zeros(1,256);

%c=zeros(1,256);

%for i=1:m     %从行开始

%    for j=1:n  %每一行的列

%        a(f(i,j,1)+1)=a(f(i,j,1)+1)+1;  %f(i,j,1)是Y通道的值,这个值有0-255的取值,a数组正好是容量256的数组,数组的下标范围是1开始的,所以要加1

%    end

%end

for i=1:m

for j=1:n

b(f(i,j,2)+1)=b(f(i,j,2)+1)+1;%G通道

end

end

%for i=1:m

%    for j=1:n

%        c(f(i,j,3)+1)=c(f(i,j,3)+1)+1;%B通道

%    end

%end

%显示各通道灰度值

%figure(2);subplot(2,2,1);bar(a);

%title('Y分量的灰度直方图')

%xlabel('灰度值')

%ylabel('像素数')

figure(3);

%subplot(2,2,2);

bar(b);

title('Cb分量的灰度直方图')

xlabel('灰度值')

ylabel('像素数')

%subplot(2,2,3);bar(c);

%title('Cr分量的灰度直方图')

%xlabel('灰度值')

%ylabel('像素数')

%转化为二值图像

bw = im2bw(Cb,110/255);  %红灯时阈值选为110/255

%bw = im2bw(Cb,79/255);  %黄灯是阈值选为79/255

figure(4);imshow(bw);title('自选阈值');

%存储图像

imwrite(bw,'D:\毕业设计\图片\处理后图片\红灯二值化图像.jpg');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值