收藏 分销(赏)

二维码的生成与实现(matlab).doc

上传人:天**** 文档编号:11423304 上传时间:2025-07-23 格式:DOC 页数:7 大小:42.05KB 下载积分:6 金币
下载 相关 举报
二维码的生成与实现(matlab).doc_第1页
第1页 / 共7页
二维码的生成与实现(matlab).doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
课程设计报告 课题名称: 二维码的生成与识别 项目完成人(班级、学号、姓名): 项目完成时间: 2017/6/15 一、 引言 1、 编写目的 本学期学习《数字图像处理》,包含很多知识点,像:图像编码与压缩、图像相关变换、图像增强技术、图像复原技术,这些知识点的应用在实际编程中都非常重要。 纸上得来终觉浅,绝知此事要躬行。所以,这次课程设计的目的主要就是巩固所学的数字图像处理的相关知识。最终是我们通过该教学环节,把该课程以及相关知识融会贯通。 2、 背景 由于受信息的容量限制,一维条码仅仅是对“物品”的标识,而不是对“物品”的描述,故一维条码的使用不得不依赖数据库存在。在使用上受到了极大的限制,效率很低。二维码正是为了解决一维条码无法解决的问题而产生的。二维码具有高密度、高可靠性等特点,可以用来表示数据文件、图像等,实现信息获取、网站跳转、广告推送、手机电商、优惠促销、会员管理等功能,具有很强的研究意义。 3、 参考资料 《数字图像处理》第三版胡学龙 二、 设计方案 1、 图像采集 图像主要来自网上在线生成的二维码图像和该程序生成的二维码图像。 2、 算法分析 预处理过程 灰度化-----平滑处理------二值化 1.灰度化:一般都是为了减小图像原始数据量,便于后续处理时计算量更少,因为图像处理不一定需要对彩色图像的RGB三个分量都进行处理 2.平滑处理:图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。图像平滑的方法包括:插值方法,线性平滑方法,卷积法等等。这样的处理方法根据图像噪声的不同进行平滑,比如椒盐噪声,就采用线性平滑方法! 3.二值化:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。 二维码解码 二维码解码主要使用的是ZXing库,ZXing是个很经典的条码/二维码识别的开源类库 3、 代码实现 打开图像 function pushbutton1_Callback(hObject, eventdata, handles) global im; [filename,pathname]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'},'选择图像'); if isequal(filename,0)||isequal(pathname,0) errordlg('您还没有选取图片!!','温馨提示');%如果没有输入,则创建错误对话框 return; else disp(['User selected',fullfile(pathname,filename)]); fprintf('fffffff%s\n',filename); im=imread(filename);%读取图像 figure imshow(im);%在坐标axes1显示原图像 title('原始图像'); End 灰度化处理 function pushbutton4_Callback(hObject, eventdata, handles) global im; global II; I=im; [w,h,l]=size(I); %图像大小 II=[]; for i=1:h for j=1:w II(j,i)=0.3*I(j,i,1)+0.59*I(j,i,2)+0.11*I(j,i,3); %灰度化处理公式 end end figure,imshow(II,[]) %显示图像 title('二维码灰度化处理'); 平滑处理 function pushbutton5_Callback(hObject, eventdata, handles) global II; global I3; III=uint8(II); %图像转换0-255 Ix=imnoise(III,'salt & pepper',0.02); %对灰度化图像人为加噪声 I3=medfilt2(Ix,[3,3]); %平滑处理 figure imshow(Ix) title('二维码加噪处理'); figure imshow(I3) title('二维码平滑处理'); 二值化处理 function pushbutton6_Callback(hObject, eventdata, handles) global I3; global I_otsu; I_otsu=otsut(I3); %二值化处理 figure imshow(I_otsu,[]) title('二维码二值化处理'); 旋转校正 function pushbutton7_Callback(hObject, eventdata, handles) global im; %倾斜校正 :二值化,取边缘,Hough变换得到角度,旋转 I=im; bw=rgb2gray(I); %rgb转换为灰度图 bw=im2bw(I,graythresh(bw)); %二值化过程 bw=double(bw); BW=edge(bw,'canny'); %canny边缘处理 BW1=BW; figure imshow(BW1);title('canny 边界图像'); %显示图像 [H,T,R]=hough(BW); figure,imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit'); xlabel('\theta'),ylabel('\rho'); axis on, axis normal,hold on; P=houghpeaks(H,4,'threshold',ceil(0.3*max(H(:)))); %hough变化峰值检测 x=T(P(:,2)); y = R(P(:,1)); plot(x,y,'s','color','white'); lines=houghlines(BW,T,R,P,'FillGap',50,'MinLength',7); %hough检测线段 figure,imshow(BW),title('直线标识图像'); max_len = 0; hold on; for k=1:length(lines) %主要把线条和点显示出来 xy=[lines(k).point1;lines(k).point2]; % 标出线段 plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green'); % 标出线段的起始和终端点 plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow'); plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red'); len=norm(lines(k).point1-lines(k).point2); Len(k)=len; if (len>max_len) max_len=len; xy_long=xy; end end % 强调最长的部分 plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue'); [L1 Index1]=max(Len(:)); % 最长线段的起始和终止点 x1=[lines(Index1).point1(1) lines(Index1).point2(1)]; y1=[lines(Index1).point1(2) lines(Index1).point2(2)]; % 求得线段的斜率 K1=-(lines(Index1).point1(2)-lines(Index1).point2(2))/... (lines(Index1).point1(1)-lines(Index1).point2(1)) angle=atan(K1)*180/pi %显示角度 A = imrotate(I,-angle,'bilinear');% imrate 是逆时针的所以取一个负号 figure,imshow(A); 解码 function pushbutton3_Callback(hObject, eventdata, handles) global I_otsu; %global 定义全局变量 global im; global KL; global Ijibian; I_jiema=Ijibian; I_jiema=I_otsu; %二值 I_jiema=KL; I_jiema=im; str=zxing_decode(I_jiema) %解码 set(handles.edit1,'String',str); %显示字符 三、 出错处理 1、 出错信息 2、 出错处理方法及补救措施 主要是由于导入的jar包文件的路径错误而导致的,所以修改好对应的路径即可。 四、 总结 总体感觉对相关数字图像的处理有了更深的理解。但是仍然感觉到自己还有不足,因为一些图像变换还不是太熟悉,以后自己一定会补上这一块。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服