close allI = imread('E:\txm。jpg');J= rgb2gray(I);figure(1)imshow(J);title('灰度化图像 ’);[e1,e2]=size(J);Im=imcrop(J,[e2/2—200,e1/2-200,400,400]);figure(2)subplot(1,2,1),imshow(Im)title('中心区域 ');subplot(1,2,2),imhist(Im)title('中心区域直方图');[xa,ya]=size(Im); b=double(Im); zd=double(max(Im)) ; zx=double(min(Im)) ; T=double((zd+zx))/2; count=double(0); while 1 count=count+1; S0=0。0; n0=0.0; S1=0.0; n1=0。0; for i=1:xafor j=1:yaif double(Im(i,j))〉=TS1=S1+double(Im(i,j)); n1=n1+1; else S0=S0+double(Im(i,j)); n0=n0+1; end end end T0=S0/n0; T1=S1/n1; if abs(T-((T0+T1)/2))<0。1 break;elseT=(T0+T1)/2; end end countTK=find(J〈T);J(K)=0;K=find(J>=T);J(K)=255;figure(3)imshow(J)title(' 图像二值化 ');B=medfilt2(J,[5,1]);figure(4)imshow(B)title('中值滤波后图像’);[y0,x0]=size(B);BW = edge(B,'log’); figure(5);imshow(BW);title('边缘检测图像')%function code = barcode(pic) %条形码识别check_left = [13,25,19,61,35,49,47,59,55,11;。.。 %左边数据编码,奇39,51,27,33,29,57, 5,17, 9,23]; %左边数据编码,偶check_right = [114,102,108,66,92,78,80,68,72,116]; %右边数据编码first_num = [31,20,18,17,12,6,3,10,9,5];%第一位数据编码bar = imread(’E:\txm。jpg');%读输入条形码图片bar_Gray = rgb2gray(bar);%将 RGB 图片转换灰度图[a_hist x] = imhist(bar_Gray);hist_max = [];if a_hist(1)>a_hist(2)hist_max = [hist_max 1];endx = max(x);for i=2:xif a_hist(i)〉a_hist(i-1) && a_hist(i)〉a_hist(i+1)hist_max = [hist_max i];endendif a_hist(x)〈a_hist(x+1)hist_max = [hist_max x+1];end[m,n] = size(hist_max);k = 0;max_1 = 0;max_2 = 0;for i=1:nif k〈a_hist(hist_max(i))k = a_hist(hist_max(i));max_1 = hist_max(i);end endtemp = a_hist(max_1);a_hist(max_1) = 0;k = 0;for i=1:nif k