function [ A ] = Mybsc(I,p)
%MYBSC2 bsc信道函数
% I-输入的二值图像或0,1矩阵;p-BSC信道参数
I=im2double(I)*255;
[m,n]=size(I);
x=zeros(m,n);
pn=zeros(m,n);%像素属于第几个通道
%%
%确定列数,以及轮盘赌累加
c=[];%列数
[rr,c]=size(p);
for jjj=1:rr
pb(1,jjj)=p(1,jjj);
for iii=2:c
pb(iii,jjj)=pb(iii-1,jjj)+p(iii,jjj);
end
end
%pb为轮盘赌累加向量
%%
for i=1:m
for j=1:n
pn(i,j)=ceil((I(i,j))*rr/255);
if pn(i,j)==0
pn(i,j)=1;
end
r=rand();
for jj=1:c-1
if r>pb(jj,pn(i,j))&&r<pb(jj+1,pn(i,j))
x(i,j)=floor((jj+1)*255/c);
break;
elseif r==pb(jj+1,pn(i,j))
x(i,j)=floor((jj+1)*255/c);
break;
elseif r<=pb(1,pn(i,j))
x(i,j)=floor(255/c);
break;
end
end
end
end
A=x;
end