Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 106 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
106
Dung lượng
3,19 MB
Nội dung
Luận văn Nhận dạng chữ viết phân tích trang tài liệu Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy Mục lục Mục lục i Danh mục hình ảnh iv MỞ ĐẦU I Đặt vấn đề II Nội dung nghiên cứu III Bố cục luận văn Chƣơng I TỔNG QUAN VỀ NHẬN DẠNG CHỮ VIẾT VÀ PHÂN TÍCH TRANG TÀI LIỆU I.1 Ảnh tài liệu nhận dạng ảnh tài liệu I.1.1 Tổng quan ảnh tài liệu I.1.2 Nhận dạng tài liệu vai trị phân tích ảnh tài liệu I.2 Cấu trúc ảnh tài liệu I.2.1 Cấu trúc vật lý I.2.2 Cấu trúc logic 10 I.3 Q trình phân tích tài liệu 10 I.3.1 Tiền xử lý(preprocessing): 11 I.3.2 Phân tích cấu trúc vật lý 12 I.3.3 Phân tích cấu trúc logic 13 I.4 Một số hệ thống phân tích tài liệu 14 I.4.1 VnDOCR 14 I.4.2 OminiPage 18 I.4.3 Finereader 20 I.5 Kết luận 22 Chƣơng II: CÁC PHƢƠNG PHÁP TIẾP CẬN 23 ĐỂ PHÂN TÍCH TRANG TÀI LIỆU 23 II.1 Các phƣơng pháp phân tích định dạng trang tài liệu 23 II.1.1 Top-down 23 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên i http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy II.1.2 Bottom-up 30 II.1.3 Phƣơng pháp Tách Nối thích nghi (Adaptive Split – and – Merge) 32 II.1.4 Fractal Signature (FS) 34 II.2 Lựa chọn giải pháp 38 II.3 Thiết kế hệ thống 39 II.3.1 Sơ đồ khối 39 II.3.2 Ảnh đầu vào 39 II.3.3 Module Tiền xử lý 40 II.3.4 Phân tích sử dụng giả pháp Fractal Signature 41 II.4 Kết luận 45 Chƣơng III: XÂY DỰNG CHƢƠNG TRÌNH THỬ NGHIỆM 46 III.1 Yêu cầu hệ thống 46 III.2 Thiết kế chƣơng trình 46 III.2.1 Cấu trúc liệu 46 III.2.2 Module chuẩn hóa ảnh 48 III.2.3 Module giao diện 51 III.2.4 Module phân tích Top-down (TD) 52 III.2.5 Module phân tích Fractal Signature 55 III.2.6 Module lọc làm trơn nhiễu 57 III.2.7 Module mơ thuật tốn FS 58 III.2.8 Các hàm chức image processing tool matlab sử dụng chƣơng trình 60 III.3 Kết luận đánh giá kết 62 Kết luận 83 TÀI LIỆU THAM KHẢO 84 Phục Lục 85 A Mã nguồn đầy đủ chƣơng trình 85 A.1 Danh mục chƣơng trình chƣơng trình 85 A.2 Sơ khối liên kết thủ tục chƣơng trình 86 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên ii http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy A.3 Mã nguồn module 86 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên iii http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy Danh mục hình ảnh Hình 1: Sơ đồ tổng quan trình tạo ảnh tài liệu Hình 2: Ví dụ ảnh tài liệu Hình 3: Sơ đồ OCR Hình 4: b-Cấu trúc vật lý: c,d-Cấu trúc logic tài liệu[4] Hình 5: Ví dụ loại tài liệu có bố cục phức tap 10 Hình 6: Sơ đồ nguyên lý hệ thống xử lý tài liệu[6] 11 Hình 7: a - Ảnh gốc b - Ảnh sau tách 12 Hình 8: Ví dụ ảnh tài liệu bị nghiêng góc độ 13 Hình 9: Ví dụ mơ tả cấu trúc logic trang tài liệu[5] 14 Hình 10: VnDOCR ví dụ nhận dạng 15 Hình 11: Ảnh mẫu có cấu trúc vật lý phức tạp 16 Hình 12: Kết hai vùng ảnh với ảnh mẫu 11 16 Hình 13: Mẫu ảnh có cấu trúc vật lý phức tạp, nhƣng khối bao hình chữ nhật 17 Hình 14: Kết phân tích với ảnh 13 18 Hình 15: Đầu phân vùng có vùng văn 19 Hình 16: Đầu có vùng chứa ảnh text 19 Hình 17: Với ảnh 13 đạt hiệu 90% 20 Hình 18 Với ảnh I-15 hiệu đạt 100% 21 Hình 19: Với mẫu phức tạp Finereader cho kết 95% 22 Hình 20: Kết chiếu nghiêng theo phƣơng ngang phƣơng thẳng đứng trang tài liệu 24 Hình 21: Phân tách cột dựa vào phép chiếu nghiêng theo phƣơng ngang 25 Hình 22: Phép chiếu nghiêng theo phƣơng ngang để phân đoạn ký tự từ 26 Hình 23: Lƣợc đồ chiếu ngang dịng chữ nghiêng - khó phân đoạn ký tự 27 Hình 24: Lƣợc đồ chiếu đứng trang tài liệu bị nghiêng 28 Hình 25: Lƣợc đồ chiếu đứng báo 29 Hình 26: Phƣơng pháp Dostrum cho phân tích định dạng trang từ dƣới lên (a) Một phần nội dung văn gốc (b) Các thành phần lân cận gần đƣợc xác định Số hóa Trung tâm Học liệu – Đại học Thái Nguyên iv http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy (c) Các hình chữ nhật tối thiểu tạo nên nhóm láng giềng gần từ xác định đƣợc dịng văn 31 Hình 27: Mơ tả thuật tốn Tách Nối thích nghi 33 Hình 28: Mơ tả thuật tốn FS 35 Hình 29: Sơ đồ khối hệ thống phân tích tài liệu phạm vi đề tài 39 Hình 30: Ví dụ bolck chuyển sang dạng bề mặt khơng gian 3D 41 Hình 31: Ví dụ chuyển ảnh chữ "c" sang dạng bề mặt khơng gian 3D 41 Hình 32: (a) Ảnh tài liệu gốc, (b) kết sau áp dụng FS 44 Hình 33: Giao diện 51 Hình 34: Kết phân tích top-down tài liệu có cấu trúc đơn giản 63 Hình 35: Kết phân tích top-down tài liệu có cấu trúc bảng 65 Hình 36: : Kết phân tích top-down tài liệu văn 67 Hình 37: : Kết phân tích top-down tài liệu có cấu trúc phức tạp (trang tạp trí) 69 Hình 38 : Kết phân tích top-down tờ quảng cáo 71 Hình 39: Kết phân tích top-down tài liệu có cấu trúc phức tạp 73 Hình 40: Kết phân tích top-down tài liệu bị nghiêng 75 Hình 41: Kết phân tích FS tài liệu bị nghiêng 77 Hình 42: Kết phân tích FS tài có cấu trúc phức tạp 79 Hình 43: Kết phân tích FS trang quảng cáo 81 Hình 44: Kết phân tích FS tài liệu đơn giản 82 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên v http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy MỞ ĐẦU I Đặt vấn đề Ngày việc sử dụng máy tính để lƣu trữ tài liệu khơng cịn vấn đề mẻ cần phải chứng minh tính an tồn, thuận tiện Tuy nhiên việc sử dụng giấy để lƣu trữ tài liệu số mục đích thay đƣợc (nhƣ báo, sách, công văn,…) Hơn lƣợng tài liệu đƣợc tạo từ nhiều năm trƣớc cịn nhiều mà khơng thể bỏ đƣợc tính quan trọng chúng Chúng ta mong muốn điện tử hóa hàng tỉ trang tài liệu cất chúng ổ cứng kích thƣớc sách nhỏ, tìm kiếm thông tin mà cần tốn vài giây với gõ phím Enter Giải pháp gì? Thơng thƣờng ngƣời ta phải thuê ngƣời với việc tốn hàng tháng, hàng năm nhập vào máy tính đƣợc hết lƣợng tài liệu Hiện có máy Scan với tốc độ cao, cơng nghệ xử lý máy tính ngày siêu việt với tốc độ tính tốn vƣợt tốc độ ánh sáng, khơng qt tồn trang tài liệu vào chuyển chúng thành văn cách tự động? Bằng cách tốc độ tính xác tăng hàng trăm lần chi phí lại cực tiểu Vấn đề qt vào máy tính khơng thu đƣợc dòng văn từ trang tài liệu kia, để soạn thảo, sửa chữa tìm kiếm nhƣ làm Office Tất thu đƣợc ảnh trang văn bản, máy tính lại đối xử cơng nhƣ với điểm ảnh, máy tính khơng có “mắt” nhƣ để điểm ảnh chữ, đâu điểm ảnh đối tƣợng đồ họa Một giải pháp đƣợc nghĩ đến là xây dựng hệ thống nhận dạng chữ, ảnh chứa chữ đối tƣợng đồ họa cần tách chuyển thành dạng trang văn bản, từ mở soạn thảo đƣợc trình soạn thảo văn Một cách tổng quát cách thức làm việc hệ thống nhận dạng chữ nhƣ sau[5]: Chụp ảnh trang tài liệu giấy lƣu lại máy tính dƣới dạng hình ảnh Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy Sử dụng chƣơng trình xử lý ảnh để phân tích hình ảnh sau qt, đọc đƣợc ký tự hình ảnh ghi lại vào máy tính theo cách mà máy tính quản lý đƣợc thơng tin liệu a Bƣớc phân tích cấu trúc ảnh tài liệu, từ xác định đâu phần chứa chữ, đâu phần chứa ảnh lẫn ký tự đâu chứa hình ảnh Bƣớc thực quan trọng cho bƣớc nhận dạng Bởi định vị xác cho việc áp dụng thuật toán nhận dạng lên vùng xác định tính chất, bƣớc xác trƣớc tiên hạn chế thời gian cho việc nhận dạng, sau tăng ngữ nghĩa bổ sung cho việc nhận dạng b Bƣớc nhận dạng ký tự dựa vào tính chất ký tự, ví dụ nhƣ xếp theo dòng, khoảng cách từ lớn khoảng cách ký tự, dùng trí tuệ nhân tạo để dự đoán ký tự kề phải nhƣ nào, từ câu phải nhƣ để câu có nghĩa Từ có nội dung để lƣu trữ, quản lý… Trong thực tế khơng phải q trình nhận dạng trải qua hai bƣớc nhƣ trên, có nhiều tham số ảnh hƣởng đến kết chƣơng trình nhận dạng, nhƣ nhiễu, Font chữ, kích thƣớc chữ, kiểu chữ nghiêng, đậm, gạch dƣới Ngồi dịng chữ trộn lẫn với đối tƣợng đồ họa, trƣớc nhận dạng chữ, số thao tác tiền xử lý đƣợc tác động lên ảnh nhƣ, lọc nhiễu, chỉnh góc nghiêng đặc biệt quan trọng phân tích trang tài liệu để xác định cấu trúc trang văn đồng thời tách biệt hai thành phần chữ đối tƣợng đồ họa (phi chữ) II Nội dung nghiên cứu Mục tiêu nghiên cứu đề tài Tìm hiểu cấu trúc trang tài liệu (cấu trúc vật lý, logic)? Tìm hiểu số kỹ thuật phân tích trang tài liệu (phân vùng, phân đoạn,…) Cài đặt thử nghiệm giải pháp phân tích có hiệu cao so với phƣơng pháp truyền thống nhƣ top-down hay bottom-up ảnh vào ảnh đa cấp xám có cấu trúc phức tạp Từ kết nghiên cứu có chuẩn bị kiến thức đẩy đủ cho bƣớc nghiên cứu nhận dạng ký tự quang Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy Ý nghĩa khoa học đề tài Giải đƣợc vấn đề học thuật: đề tài mang ý nghĩa cung cấp mặt lý thuyết để làm rõ phƣơng pháp phân tích trang tài liệu Đáp ứng đƣợc yêu cầu thực tiễn: từ lý thuyết đƣợc nghiên cứu, từ liên hệ gắn vào thực tiễn để áp dụng vào lĩnh vực nhƣ: Lƣu trữ thƣ viện, điện tử hóa văn phịng, nhận dạng xử lý ảnh, … Nhiệm vụ nghiên cứu Mục đích luận văn đề cập đƣợc đến hai phần: Phần lý thuyết: Nắm rõ trình bày sở lý thuyết liên quan đến cấu trúc trang tài liệu, số kỹ thuật phân tích trang tài liệu, từ có để xác định tính quan trọng bƣớc nhận dạng ký tự, đồng thời hiểu công việc cần làm bƣớc nhận dạng ký tự Phần phát triển ứng dụng: Áp dụng thuật toán trình bày phần lý thuyết từ lựa chọn giải pháp tối ƣu cài đặt thử nghiệm chƣơng trình phân tích trang tài liệu Phƣơng pháp nghiên cứu Tìm kiếm, tham khảo, tổng hợp tài liệu từ nguồn khác để xây dựng phần lý thuyết cho luận văn Sử dụng kỹ thuật đƣợc áp dụng phân tích trang tài liệu để làm rõ chất vấn đề đƣợc đƣa phần lý thuyết Xây dựng chƣơng trình Demo Phạm vi nghiên cứu Bài tốn nhận dạng xử lý ảnh tài liệu đƣợc phát triển với nhiều thành tựu thực tế, có nhiều thuật toán tối ƣu đƣợc nhà khoa học đề nghị Tuy nhiên nói chƣa có chƣơng trình “đọc” ảnh văn nhƣ ngƣời, thực tế có nhiều kiểu trang văn khác nhau, khác cấu trúc trình bày, ngơn ngữ, kiểu font, chữ viết tay,… Đây thực tốn lớn, phạm vi luận văn tìm hiểu số kỹ thuật phân tích trang văn tiêu biểu với mục đích để so sánh thuật toán chƣa đƣợc đƣa đề tài trƣớc Cuối cùng, dựa vào để xây dựng Demo cho ứng dụng Các kết nghiên cứu dự kiến cần đạt đƣợc: Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy Tìm hiểu tài liệu liên quan đến lĩnh vực quan tâm để nắm bắt đƣợc chất vấn đề đặt Báo cáo lý thuyết Chƣơng trình Demo III Bố cục luận văn Nội dung luận văn đƣợc trình bày ba chƣơng với nội dung sau Chƣơng 1: Trình bày khái niệm mơ hình tổng qt hệ thống nhận dạng chữ viết, với số phần mềm nhận dạng tiêu biểu Chƣơng 2: Trình bày số phƣơng pháp phân tích trang tài liệu, từ đánh giá ƣu nhƣợc điểm để lựa chọn phƣơng pháp Fractal Signature cho chƣơng trình thử nghiệm Trình bày thiết kế cho chƣơng trình demo Chƣơng 3: Trình bày chi tiết việc cài đặt chƣơng trình nhƣ thủ tục sử dụng chƣơng trình với phƣơng pháp phân tích Fractal Signature ảnh đầu vào ảnh đa cấp xám có độ phức tạp cao Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy A.2 Sơ khối liên kết thủ tục chƣơng trình Main Phantich (chương trình chính) Topdown Phantichtrong FSign FSignKV DemoFS A.3 Mã nguồn module 1) Main: y=imread(filename); anhgoc=y; %%%%%%%%%%%%% Cac bien phu chuong trinh % bien de tranh pha tich trung lap global letraicu; global lephaicu; global startcu; global limitcu; %%%%%%%%%%%%%%%%%%% % loc nhieu anh goc y=double(y)/255; % chuyen sang kieu double %%%%%%% mat na loc k=[0 0;1 1;0 0]; k=1/8*k; %%%%%%% dung ham loc y=conv2(y,k); y=uint8(round(y*255)); %%%%%%%%%%%%%%%% kich_thuoc_anh=size(y); chieucao=kich_thuoc_anh(1); chieurong=kich_thuoc_anh(2); %%%%%%%%%Phan nguong va tim hinh chieu doc gray_min=min(min(y)); gray_max=max(max(y)); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 86 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy nguongtach=round(((gray_min+gray_max)/2)); z=zeros(1,chieucao);% z la hinh chieu doc for i=1:chieucao for j=1:chieurong if (y(i,j)>nguongtach) % vung nen y(i,j)=255; % xoa trang vung nen else z(i)=z(i)+1; % tinh cho bieu xam end end end %%%%%%%%%%%%%%% chieu_cao_hang=timhang(z); %%%%%%%%%%%%%%%%% tach khoi bang cach vao tung khoi van ban ngang tim hinh %%%%%%%%%%%%%%%%% chieu ngang i=1; start=i; limit=i; luocdo=zeros(1,chieurong); while (ichieucao limit=chieucao; % tranh vuot qua vung bien anh end if (limit-start)>=(0.5*chieu_cao_hang) y=phantich(start,limit,y,nguongtach,chieu_cao_hang,1,size(y,2)); end end while (i=(0.5*chieu_cao_hang) y=phantich(start,limit,y,nguongtach,chieu_cao_hang,1,size(y,2)); end end while (idau cuctieu=round(min(luocdo(dau:cuoi))*1.2); else cuctieu=bienphai-bientrai; end %%%%%%%%%%%% if (cuctieu>0)&((limit-start)>= 2*chieu_cao_hang)% vung anh for hang_anh=start:limit for cot_anh=bientrai:bienphai anh(hang_anh,cot_anh)=255-anh(hang_anh,cot_anh); end end else dorong=0; truoc=luocdo(1); letrai=bientrai; lephai=bientrai; i=bientrai; dautien=0; while(i=bienphai)) % khoang canh cho phep if (lephai>letrai) % tien hanh ve vung van ban % dautien=0; if ((limit-start)< 2*chieu_cao_hang) % khung vung van ban Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 89 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy if lephai>bienphai lephai=bienphai; end for ve_bien_ngang=letrai:lephai anh(start,ve_bien_ngang)=0; anh(limit,ve_bien_ngang)=0; end for ve_bien_doc=start:limit anh(ve_bien_doc,letrai)=0; anh(ve_bien_doc,lephai)=0; end else if (letraicu==letrai) & (lephaicu==lephai)&(startcu==start)&(limitcu==limit) % tranh bi treo % trung khoi phan tich letraicu lephaicu startcu limitcu else letraicu=letrai; lephaicu=lephai; startcu=start; limitcu=limit; anh=phantichtrong(start,limit,letrai,lephai,anh,nguongtach,chieu_cao_hang); end end end letrai=i;% bat dau mot vung van ban dorong=0; else dorong=0; end while (icuctieu) i=i+1; % di qua vung van ban lephai=i; end end end ketqua=anh; 4) Phantichtrong: function ketqua=phantichtrong(start,limit,letrai,lephai,anh,nguongtach,chieu_cao_hang) y=anh; chieucao=limit; chieurong=lephai; %%%%%%%%%Phan nguong va tim hinh chieu doc %z=zeros(1,size(y,1));% z la hinh chieu doc z=zeros(1,limit-start+1);% z la hinh chieu doc for i=start:chieucao for j=letrai:chieurong if (y(i,j)>nguongtach) % vung nen else z(i-start+1)=z(i-start+1)+1; % tinh cho bieu xam end end end %%%%%%%%%%%%%%%%% tach khoi bang cach vao tung khoi van ban ngang tim hinh %%%%%%%%%%%%%%%%% chieu ngang Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 90 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy i=start; start_t=i; limit_t=i; while (ichieucao limit_t=chieucao; % tranh vuot qua vung bien anh end y=phantich(start_t,limit_t,y,nguongtach,chieu_cao_hang,letrai,lephai); end while (iround(chieurong/N) chieurong=round(chieurong/N)*N+N; else chieurong=round(chieurong/N)*N; end %anh=zeros(1:chieucao,1:chieurong); %%%%%%%%%%%%%%%%%%%% %loc nhieu anh goc %anh = filter2(fspecial('average',3),anh); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 91 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy anh=double(anh)/255; % chuyen sang kieu double %%%%%%% mat na loc loc=[0 0;1 1;0 0]; loc=1/8*loc; %%%%%%% dung ham loc anh=conv2(anh,loc); anh=uint8(round(anh*255)); %%%%%%%%%%%%%% for i=1:chieucao for j=1:chieurong if (i>chieucao_goc)|(j>chieurong_goc) % ngoai vung bien anh goc anh(i,j)=0; % dat la vung nen anh else % vung bien anh goc %anh(i,j)=255-anh(i,j); if (anh(i,j)>nguongtach) % vung nen %anh(i,j)=255; % xoa trang vung nen anh(i,j)=0; else %z(i)=z(i)+1; % tinh cho bieu xam anh(i,j)=255-anh(i,j); end end end end %%%%%%%%%%%%%%% tinh FS cho moi block FS=[]; k=0; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% u_layer1=zeros(N+2);b_layer1=zeros(N+2);u_layer2=zeros(N+2);b_layer2=zeros(N+2);block_k=zeros(N +2); %%%%%%%%%%%%%%%%%%%%%% for i=2:round(chieucao/N) for(j=2:round(chieurong/N)) %%%%%%%%%% thao tac voi block thu K u_layer1(:,:)=0; b_layer1(:,:)=0; u_layer2(:,:)=0; b_layer2(:,:)=0; vol1=0; vol2=0; block_k(2:N+1,2:N+1)=anh((i-1)*N+1:i*N,(j-1)*N+1:j*N); % tinh gia tri cho lop tren va duoi voi delta1 cho moi vung thu k for ki=2:N+1 for kj=2:N+1 g1_u=block_k(ki,kj)+1; g1_b=block_k(ki,kj)-1; g2=block_k(ki,kj+1); g3=block_k(ki,kj-1); g4=block_k(ki+1,kj); g5=block_k(ki-1,kj); temp=[g1_u g2 g3 g4 g5 g1_b]; u_layer1(ki,kj)=max(temp(1:5)); b_layer1(ki,kj)=min(temp(2:6)); vol1=vol1 + (u_layer1(ki,kj)-b_layer1(ki,kj)); % tinh xong lop tren va duoi voi delta1 % tinh gia tri cho lop tren va duoi voi delta2 g1_u=u_layer1(ki,kj)+1; g1_b=b_layer1(ki,kj)-1; g2=u_layer1(ki,kj+1); g3=u_layer1(ki,kj-1); g4=u_layer1(ki+1,kj); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 92 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy g5=u_layer1(ki-1,kj); temp=[g1_u g2 g3 g4 g5 g1_b]; u_layer2(ki,kj)=max(temp(1:5)); b_layer2(ki,kj)=min(temp(2:6)); vol2=vol2+(u_layer2(ki,kj)-b_layer2(ki,kj)); %%%%%%%%%%%%%%%% tinh xong gia tri cua lop tren duoi voi delta2 end end % tinh FS k=k+1; FS(k)=(vol2-vol1)/2; end end %%%%%%%%%%%%%%%% Tach anh va text k=0; %nguong=((min(FS)+max(FS))/2); %nguong=3000; anh=255-anh; anh=cat(3,anh,anh,anh); nguong=min(FS)+50; for i=2:round(chieucao/N) for(j=2:round(chieurong/N)) k=k+1; if (FS(k)>4000) % anh anh((i-1)*N+1:i*N,(j-1)*N+1:j*N,2:3)=20; elseif (FS(k)>nguong) % text anh((i-1)*N+1:i*N,(j-1)*N+1:j*N,1)=150; anh((i-1)*N+1:i*N,(j-1)*N+1:j*N,3)=150; end end end imshow(anh) 6) FSignKV global anh anh=imread(filename); % doc anh tu mot file JPG N=15; % kich thuoc moi block k=1; % so block tren anh co kich thuoc NxN chieucao=size(anh,1); % chieu cao cuar anh vao chieucao_goc=chieucao; chieurong=size(anh,2); % chieu rong cua anh vao chieurong_goc=chieurong; %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% %%%%%%%%%Phan nguong va tim hinh chieu doc gray_min=min(min(anh)); gray_max=max(max(anh)); nguongtach=round(((gray_min+gray_max)/2)); % chuan hoa kich thuoc anh the nguyen lan cua NxN %chuan chieu cao anh if (chieucao/N)>round(chieucao/N) chieucao=round(chieucao/N)*N+N; else chieucao=round(chieucao/N)*N; end %chuan chieu rong anh if (chieurong/N)>round(chieurong/N) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 93 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy chieurong=round(chieurong/N)*N+N; else chieurong=round(chieurong/N)*N; end %%%%%%%%%%%%%%%%%%%% %loc nhieu anh goc %anh = filter2(fspecial('average',3),anh); anh=double(anh)/255; % chuyen sang kieu double %%%%%%% mat na loc loc=[0 0;1 1;0 0]; loc=1/8*loc; %%%%%%% dung ham loc anh=conv2(anh,loc); anh=uint8(round(anh*255)); %%%%%%%%%%%%%% for i=1:chieucao for j=1:chieurong if (i>chieucao_goc)|(j>chieurong_goc) % ngoai vung bien anh goc anh(i,j)=0; % dat la vung nen anh else % vung bien anh goc %anh(i,j)=255-anh(i,j); if (anh(i,j)>nguongtach) % vung nen %anh(i,j)=255; % xoa trang vung nen anh(i,j)=0; else %z(i)=z(i)+1; % tinh cho bieu xam anh(i,j)=255-anh(i,j); end end end end %%%%%%%%%%%%%%% tinh FS cho moi block FS=[]; k=0; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% u_layer1=zeros(N+2);b_layer1=zeros(N+2);u_layer2=zeros(N+2);b_layer2=zeros(N+2);block_k=zeros(N +2); %%%%%%%%%%%%%%%%%%%%%% % mang chua FS global AFS AFS=zeros(round(chieucao/N)-1,round(chieurong/N)-1); %%%%%%%%%%%%%%%%%%%%%% for i=2:round(chieucao/N) for(j=2:round(chieurong/N)) %%%%%%%%%% thao tac voi block thu K u_layer1(:,:)=0; b_layer1(:,:)=0; u_layer2(:,:)=0; b_layer2(:,:)=0; vol1=0; vol2=0; block_k(2:N+1,2:N+1)=anh((i-1)*N+1:i*N,(j-1)*N+1:j*N); % tinh gia tri cho lop tren va duoi voi delta1 cho moi vung thu k for ki=2:N+1 for kj=2:N+1 g1_u=block_k(ki,kj)+1; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 94 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy g1_b=block_k(ki,kj)-1; g2=block_k(ki,kj+1); g3=block_k(ki,kj-1); g4=block_k(ki+1,kj); g5=block_k(ki-1,kj); temp=[g1_u g2 g3 g4 g5 g1_b]; u_layer1(ki,kj)=max(temp(1:5)); b_layer1(ki,kj)=min(temp(2:6)); vol1=vol1 + (u_layer1(ki,kj)-b_layer1(ki,kj)); % tinh xong lop tren va duoi voi delta1 % tinh gia tri cho lop tren va duoi voi delta2 g1_u=u_layer1(ki,kj)+1; g1_b=b_layer1(ki,kj)-1; g2=u_layer1(ki,kj+1); g3=u_layer1(ki,kj-1); g4=u_layer1(ki+1,kj); g5=u_layer1(ki-1,kj); temp=[g1_u g2 g3 g4 g5 g1_b]; u_layer2(ki,kj)=max(temp(1:5)); b_layer2(ki,kj)=min(temp(2:6)); vol2=vol2+(u_layer2(ki,kj)-b_layer2(ki,kj)); %%%%%%%%%%%%%%%% tinh xong gia tri cua lop tren duoi voi delta2 end end % tinh FS k=k+1; FS(k)=(vol2-vol1)/2; % AFS %AFS(i,j)=(vol2-vol1)/2; end end %%%%%%%%%%%%%%%% Tach anh va text k=0; anh=cat(3,anh,anh,anh); nguong=min(FS)+50; for i=1:round(chieucao/N-1) for(j=1:round(chieurong/N)-1) k=k+1; if ((FS(k)>nguong)&(FS(k)=4000) % vung anh AFS(i,j)=2; % danh dau vung anh end end end %%%%%%%%% khoanh vung global MLT MLT=AFS; MLT=0; % chua khoi cac phan tu lien thong %%%%%%%%%%% set(0,'RecursionLimit',1000) %%%%%%%%%%%% anh=255-anh; for i=1:round(chieucao/N-1) for(j=1:round(chieurong/N)-1) if ((AFS(i,j)~=3)&(AFS(i,j)==1)); % phan tu la text chua xet anh MLT=0; lienthong(i,j,1); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 95 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy if(sum(sum(MLT))>20 ) % bo qua vung lien thong qua nho vebien(MLT,N,1); end elseif ((AFS(i,j)~=3)&(AFS(i,j)==2)); % phan tu la text chua xet anh MLT=0; lienthong(i,j,2); if(sum(sum(MLT))>20 ) % bo qua vung lien thong qua nho vebien(MLT,N,2); end end end end imshow(anh) 7) DemFS: anh=imread(filename); % doc anh tu mot file JPG goc=anh; N=15; % kich thuoc moi block k=1; % so block tren anh co kich thuoc NxN chieucao=size(anh,1); % chieu cao cuar anh vao chieucao_goc=chieucao; chieurong=size(anh,2); % chieu rong cua anh vao chieurong_goc=chieurong; %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% %%%%%%%%%Phan nguong va tim hinh chieu doc gray_min=min(min(anh)); gray_max=max(max(anh)); nguongtach=round(((gray_min+gray_max)/2)); % chuan hoa kich thuoc anh the nguyen lan cua NxN %chuan chieu cao anh if (chieucao/N)>round(chieucao/N) chieucao=round(chieucao/N)*N+N; else chieucao=round(chieucao/N)*N; end %chuan chieu rong anh if (chieurong/N)>round(chieurong/N) chieurong=round(chieurong/N)*N+N; else chieurong=round(chieurong/N)*N; end %%%%%%%%%%%%%%%%%%%% %loc nhieu anh goc anh=double(anh)/255; % chuyen sang kieu double %%%%%%% mat na loc loc=[0 0;1 1;0 0]; loc=1/8*loc; %%%%%%% dung ham loc anh=conv2(anh,loc); anh=uint8(round(anh*255)); %%%%%%%%%%%%%% for i=1:chieucao for j=1:chieurong if (i>chieucao_goc)|(j>chieurong_goc) % ngoai vung bien anh goc anh(i,j)=0; % dat la vung nen anh else % vung bien anh goc %anh(i,j)=255-anh(i,j); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 96 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy if (anh(i,j)>nguongtach) % vung nen %anh(i,j)=255; % xoa trang vung nen anh(i,j)=0; else %z(i)=z(i)+1; % tinh cho bieu xam anh(i,j)=255-anh(i,j); end end end end %%%%%%%%%%%%%%% tinh FS cho moi block FS=[]; k=0; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% u_layer1=zeros(N+2);b_layer1=zeros(N+2);u_layer2=zeros(N+2);b_layer2=zeros(N+2);block_k=zeros(N +2); %%%%%%%%%%%%%%%%%%%%%% for i=1:round(chieucao/N) for(j=1:round(chieurong/N)) %%%%%%%%%% thao tac voi block thu K u_layer1(:,:)=0; b_layer1(:,:)=0; u_layer2(:,:)=0; b_layer2(:,:)=0; vol1=0; vol2=0; block_k(2:N+1,2:N+1)=anh((i-1)*N+1:i*N,(j-1)*N+1:j*N); % tinh gia tri cho lop tren va duoi voi delta1 cho moi vung thu k for ki=2:N+1 for kj=2:N+1 g1_u=block_k(ki,kj)+1; g1_b=block_k(ki,kj)-1; g2=block_k(ki,kj+1); g3=block_k(ki,kj-1); g4=block_k(ki+1,kj); g5=block_k(ki-1,kj); temp=[g1_u g2 g3 g4 g5 g1_b]; u_layer1(ki,kj)=max(temp(1:5)); b_layer1(ki,kj)=min(temp(2:6)); vol1=vol1 + (u_layer1(ki,kj)-b_layer1(ki,kj)); % tinh xong lop tren va duoi voi delta1 % tinh gia tri cho lop tren va duoi voi delta2 g1_u=u_layer1(ki,kj)+1; g1_b=b_layer1(ki,kj)-1; g2=u_layer1(ki,kj+1); g3=u_layer1(ki,kj-1); g4=u_layer1(ki+1,kj); g5=u_layer1(ki-1,kj); temp=[g1_u g2 g3 g4 g5 g1_b]; u_layer2(ki,kj)=max(temp(1:5)); b_layer2(ki,kj)=min(temp(2:6)); vol2=vol2+(u_layer2(ki,kj)-b_layer2(ki,kj)); %%%%%%%%%%%%%%%% tinh xong gia tri cua lop tren duoi voi delta2 end end % ve he truc toa trucx=[1:N+2]; trucy=[1:N+2]; meshgrid(trucx,trucy); % axes(handles.anhgoc); subplot(2,2,1); anhtem=goc; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 97 http://www.lrc-tnu.edu.vn GVHD: PGS TS Ngô Quốc Tạo Luận văn tốt nghiệp cao học Học viên: Nguyễn Văn Huy anhtem((i-1)*N+1:(i-1)*N+N,(j-1)*N+1:(j-1)*N+N)=0; imshow(anhtem); subplot(2,2,2); %axes(handles.uper); % surf(trucx,trucy,b_layer2) surf(trucx,trucy,u_layer2) subplot(2,2,3); %axes(handles.block); imshow(255-anh((i-1)*N+1:(i-1)*N+N,(j-1)*N+1:(j-1)*N+N)); subplot(2,2,4); %axes(handles.surf); trucx=[1:N]; trucy=[1:N]; meshgrid(trucx,trucy); surf(trucx,trucy,double(anh((i-1)*N+1:(i-1)*N+N,(j-1)*N+1:(j-1)*N+N))); pause(0.3) % tinh FS k=k+1; FS(k)=(vol2-vol1)/2; end end 8) Lienthong function lienthong(i,j,loai) % loai=1 la text, =2 la anh global AFS; global MLT; AFS(i,j)=3; % danh dau la da xet MLT(i,j)=1; % danh dau diem thuoc vung lien thong if (((i-1)>0)&((j-1)>0)& (AFS(i-1,j-1)~=3)&(AFS(i-1,j-1)==loai)) lienthong(i-1,j-1,loai);end if (((j-1)>0)& (AFS(i,j-1)~=3)&(AFS(i,j-1)==loai)) lienthong(i,j-1,loai);end if (((i+1)0)&(AFS(i+1,j-1)~=3)&(AFS(i+1,j-1)==loai))lienthong(i+1,j-1,loai);end if (((i-1)>0)& (AFS(i-1,j)~=3)&(AFS(i-1,j)==loai)) lienthong(i-1,j,loai);end if (((i+1)0)&((j+1)