1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thí nghiệm thông tin số bài 1 kỹ thuật mã hóa kênh

22 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG KHOA ĐIỆN TỬ - VIỄN THÔNG  - - BÁO CÁO THÍ NGHIỆM THÔNG TIN SỐ NHÓM 20.38A Giáo viên hướng dẫn: ThS.Trần Văn Líc Sinh viên thực hiện : Nguyễn Ngọc Huy - 106200019 Nguyễn Văn Nam - 106200026 Nguyễn Văn Trọng - 106200041 Lớp sinh hoạt : 20DT1 Đà Nẵng, năm 2023 BÀI 1: KỸ THUẬT MÃ HÓA KÊNH Bài 1: Thực hiện mã hóa ASCII cho đoạn văn sau: Faculty of Electronic and Telecommunication - Giả sử lỗi rơi vào vị trí 1, 2, 4, 3, 3, 5, 7, 1, 6, 1, ký tự màu đỏ Giải mã - Nhận xét khả phát hiện lỗi mã ASCII Code Matlab: a='Faculty of Electronic and Telecommunication' c=dec2bin(a) if c(2,1)=='0' c(2,1)='1'; else c(2,1)='0'; end if c(3,2)=='0' c(3,2)='1'; else c(3,2)='0'; end if c(4,4)=='0' c(4,4)='1'; else c(4,4)='0'; end if c(5,3)=='0' c(5,3)='1'; else c(5,3)='0'; end if c(13,3)=='0' c(13,3)='1'; else c(13,3)='0'; end if c(14,5)=='0' c(14,5)='1'; else c(14,5)='0'; end if c(16,7)=='0' c(16,7)='1'; else c(16,7)='0'; end if c(17,1)=='0' c(17,1)='1'; else c(17,1)='0'; end if c(18,6)=='0' c(18,6)='1'; else c(18,6)='0'; end if c(27,1)=='0' c(27,1)='1'; else c(27,1)='0'; end if c(28,2)=='0' c(28,2)='1'; else c(28,2) ='0'; end a=char(bin2dec(c)) fprintf('Character :') a=a' fprintf('Intial character :'); fprintf('Faculty of Electronic and Tecommunication'); ➢ Kết quả: Character : a= 'F!C}|ty of E|acu2mnic and Elecommunication' Intial character :Faculty of Electronic and Tecommunication ➢ Nhận xét khả phát lỗi mã ASCII: Mặc dù mã ASCII khơng có khả phát hiện lỗi Nếu bit liệu ASCII bị bị thay đổi trình truyền, thiết bị phần mềm phát hiện lỗi giải mã liệu bị lỗi cách sai lệch Bài 2: Cho đoạn văn sau: Electronic - Mã hóa tin dùng mã khối tuyến tính (4, 7) với đa thức sinh ví dụ Tính tỷ lệ mã - Giải mã tin với giả sử lỗi xuất hiện vị trí 1, ký tự “e” màu đỏ Nhận xét khả phát hiện lỗi mã (4, 7) Code Matlab: clc; close all; clear all; %Ma hoa T='Electronic'; m = dec2bin(T, 7)-'0'; x=[1 0 1011 1011 0011 0010 1110 0011 1110 1001 1100 1011 0111 1110 1110 1101 0011 1000 1 0]; G=[1 0 1 0100011 0010101 0 1 0]; a1=x(1,:)*G; a1=mod(a1,2); a2=x(2,:)*G; a2=mod(a2,2); a3=x(3,:)*G; a3=mod(a3,2); a4=x(4,:)*G; a4=mod(a4,2); a5=x(5,:)*G; a5=mod(a5,2); a6=x(6,:)*G; a6=mod(a6,2); a7=x(7,:)*G; a7=mod(a7,2); a8=x(8,:)*G; a8=mod(a8,2); a9=x(9,:)*G; a9=mod(a9,2); a10=x(10,:)*G; a10=mod(a10,2); a11=x(11,:)*G; a11=mod(a11,2); a12=x(12,:)*G; a12=mod(a12,2); a13=x(13,:)*G; a13=mod(a13,2); a14=x(14,:)*G; a14=mod(a14,2); a15=x(15,:)*G; a15=mod(a15,2); a16=x(16,:)*G; a16=mod(a16,2); a17=x(17,:)*G; a17=mod(a17,2); a18=x(18,:)*G; a18=mod(a18,2); mahoaASCII=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18]; mahoa_4_7 = num2str (mahoaASCII); clc; close all; clear all; %giai ma T='Electronic'; G=[1 0 1 0100011 0010101 0 1 0]; %bit loi o vi tri so va cua ky tu 'E' x=dec2bin(T)-'0'; x1=x(1,:); m_ERROR=[1 0 1011 1011 0011 0010 1110 0011 1110 1001 1100 1011 0111 1110 1110 1101 0011 1000 1 0]; H=[1 1 0 1101010 1 0 1]; e=[zeros(1,7) eye(7)]; s=e*H'; r=m_ERROR*G; r1=m_ERROR*G; r1=mod(r1,2); r1(1,1)=~r1(1,1); r1(2,3)=~r1(2,3); r11=r1(1,:); r77=r1(2,:); s1=r11*H'; s1=mod(s1,2); s7=r77*H'; s7=mod(s7,2); e_loi_1=' '; r_sualoi_1=' '; e_loi_7=' '; r_sualoi_7=' '; for i=1:8 if s1==s(i,:) disp(['chu E loi vi tri thu ' num2str(i-1) '']) e_loi_1=e(i,:); e_loi_1=mod(e_loi_1,2); else disp(['khong phat hien duoc loi']) end if s7==s(i,:) disp(['chu l loi vi tri thu ' num2str(i-1) '']) e_loi_7=e(i,:); e_loi_7=mod(e_loi_7,2); else disp(['khong phat hien duoc loi']) end end r_sualoi_1=r11+e_loi_1; r_sualoi_7=r77+e_loi_7; r111=[r_sualoi_1(1:4) r_sualoi_7(1:3); r_sualoi_7(4) x(2,2:7); x(3:10,:)]; %sualoi kytu_saukhisualoi_1_7=char(bin2dec(num2str(r111))); ky_tu_sau_khi_sua_loi= kytu_saukhisualoi_1_7'; fprintf('ki tu ban dau: '); fprintf('Electronic'); ➢ Kết quả: khong phat hien duoc loi khong phat hien duoc loi chu E loi vi tri thu khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi chu l loi vi tri thu khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi ki tu ban dau: Electronic ➢ Nhận xét khả phát lỗi mã (4, 7): Mã (4, 7) có khả phát hiện tất lỗi đơn bit lỗi kép bit liên tiếp đến bit Nó sửa lỗi đơn bit phát hiện tối đa hai lỗi đơn bit lỗi kép bit Tuy nhiên, mã (4, 7) phát hiện sửa tất lỗi Nếu có nhiều hai lỗi đơn bit lỗi kép bit lỗi đơn bit xảy lúc, mã phát hiện sửa lỗi Bài 3: - Thực hiện tập với mã (7, 11) Đa thức sinh tự chọn - So sánh mã (4, 7) (7, 11) tiêu chí: + Tỷ lệ mã + Khả phát hiện lỗi Code Matlab: clc; close all; clear all; %Ma hoa T='Electronic'; x = dec2bin(T, 7)-'0'; G=[1 0 0 0 1 1 01000000110 00100001010 00010001100 00001001101 00000100011 0 0 0 0 1]; a1=x(1,:)*G; a1=mod(a1,2); a2=x(2,:)*G; a2=mod(a2,2); a3=x(3,:)*G; a3=mod(a3,2); a4=x(4,:)*G; a4=mod(a4,2); a5=x(5,:)*G; a5=mod(a5,2); a6=x(6,:)*G; a6=mod(a6,2); a7=x(7,:)*G; a7=mod(a7,2); a8=x(8,:)*G; a8=mod(a8,2); a9=x(9,:)*G; a9=mod(a9,2); a10=x(10,:)*G; a10=mod(a10,2); mahoaASCII=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10]; mahoa_7_11 = num2str (mahoaASCII) clc; close all; clear all; %giai ma T='Electronic'; G=[1 0 0 0 1 01000000110 00100001010 00010001100 00001001101 00000100011 0 0 0 1 0 1]; %bit loi o vi tri so va cua ky tu 'E' m_ERROR=dec2bin(T)-'0' ; H=[0 1 1 0 11011000100 11100100010 0 1 0 1]; e=[zeros(1,11) eye(11)]; s=e*H'; c=m_ERROR*G; r1_7=m_ERROR*G; r1_7=mod(r1_7,2); r1_7(1,1)=~r1_7(1,1); r1_7(1,7)=~r1_7(1,7); r11_77=r1_7(1,:); s1_7=r11_77*H'; s1_7=mod(s1_7,2); e_loi_1_7=' '; r_sualoi_1_7=' '; for i=1:12 if s1_7==s(i,:) disp(['s1 va s7 loi vi tri thu ' num2str(i-1) '']) e_loi_1_7=e(i,:); e_loi_1_7=mod(e_loi_1_7,2); else disp(['khong phat hien duoc loi']) end end r_sualoi_1_7=r11_77+e_loi_1_7; r_sualoi_1_7=mod(r_sualoi_1_7,2); %sua loi vi tri va a=[r_sualoi_1_7(1:7); m_ERROR(2:10,:)]; kytu_saukhisualoi_1_7=char(bin2dec(num2str(a))); ky_tu_sau_khi_sua_loi= kytu_saukhisualoi_1_7' fprintf('ki tu ban dau: '); fprintf('Electronic'); ➢ Kết quả: khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi khong phat hien duoc loi ky_tu_sau_khi_sua_loi = ' lectronic' ki tu ban dau: Electronic ➢ Nhận xét: Mã (4, 7) (7, 11) hai loại mã dùng mã hoá kênh truyền thông tin Dưới so sánh chúng theo tiêu chí: • Tỷ lệ mã: Tỷ lệ mã (r) số bit kiểm tra (parity bit) thêm vào khối liệu để tạo mã Mã (4, 7) có tỷ lệ mã 4/7, cịn mã (7, 11) có tỷ lệ mã 7/11 Vì vậy, mã (7, 11) có tỷ lệ mã cao so với mã (4, 7) Tuy nhiên, tỷ lệ mã cao khối liệu dài, gây độ trễ (latency) q trình truyền thơng tin - Khả phát hiện lỗi: Mã (4, 7) có khả phát hiện lỗi bit, tức phát hiện bit bị lỗi khối liệu Mã (7, 11) có khả phát hiện lỗi bit, tức phát hiện tối đa hai bit bị lỗi khối liệu Như vậy, mã (7, 11) có khả phát hiện lỗi cao so với mã (4, 7) Tuy nhiên, việc phát hiện lỗi khơng có nghĩa mã tự động sửa lỗi, tìm vị trí lỗi để thực hiện sửa chữa thủ cơng Tóm lại, mã (7, 11) có tỷ lệ mã khả phát hiện lỗi cao so với mã (4, 7) Tuy nhiên, việc chọn mã phù hợp cần phải cân nhắc hiệu suất độ tin cậy, đồng thời phải xem xét tình yêu cầu cụ thể ứng dụng mã BÀI 2: KỸ THUẬT MÃ HÓA NÉN Bài 1: Cho trang tài liệu quét TestRLC.bmp + Thực hiện mã hóa nén trang tài liệu quét trên, dung kĩ thuật mã hóa RLC Tính tỉ lệ nén + Cho bên thu biết số điểm ảnh dòng quét tài liệu 250 Thực hiện giải mã + So sánh tài liệu gốc sau giải nén để đánh giá chất lượng nén định tính định lượng Code Matlab: clc; im=imread('TestRLC.bmp'); subplot(1,2,1) imshow(im) title('Anh goc'); %Ma Hoa SoBitSauKhiNen=0; KyTuMaHoa=[]; ChieuDaiKyTu=[]; mahoa=[]; for i=1:250 x=im(i,:); DemLap=[]; KyTuLap=[]; a=1; KyTuLap(a)=x(1); DemLap(a)=1; count=1; for j=2:250 if x(j)==x(j-1) DemLap(a)=DemLap(a)+1; else a=a+1; KyTuLap(a)=im(i,j); DemLap(a)=1; count=count+1; end end display(DemLap); display(KyTuLap); mahoa=KyTuLap; for j=1:length(KyTuLap) if mahoa(j)==1 mahoa(j)=255; end end SoBitSauKhiNen = SoBitSauKhiNen + count*8*2; KyTuMaHoa = [KyTuMaHoa KyTuLap]; ChieuDaiKyTu = [ChieuDaiKyTu DemLap]; display([dec2bin(DemLap,8),dec2bin(mahoa,8)]); end fprintf('\nSo bit sau nen =%.3f bit\n',SoBitSauKhiNen); x=[]; MaTranGiaiMa=zeros(250,250); for a=1:length(ChieuDaiKyTu) x=[x KyTuMaHoa(a)*ones(1,ChieuDaiKyTu(a))]; end count=1; for i=1:250 for j=1:250 MaTranGiaiMa(i,j)= x(count); count=count+1; end end kq=0; if im==MaTranGiaiMa kq=1; end fprintf('kiem tra xem dây có phai nén khơng ton hao hay không? \n'); if kq==0 fprintf('nen co ton hao \n'); else fprintf('nen Khong ton hao\n'); end TyLeNen=(8062/(SoBitSauKhiNen/8)); fprintf('\nTy Le Nen RLC :%.4f\n\n',TyLeNen); subplot(1,2,2) imshow(MaTranGiaiMa); title('Anh Giai Ma'); ➢ Kết quả: So bit sau nen =15520.000 bit kiem tra xem dây có phai nén khơng ton hao hay không? nen Khong ton hao Ty Le Nen RLC :4.1557 ➢ Nhận xét: Chất lượng hình ảnh tốt tương đối giống với ảnh gốc Bài 2: Cho trang tài liệu quét TestFax.bmp + Thực hiện mã hóa nén trang tài liệu qt trên, dung kĩ thuật mã hóa RLC Tính tỉ lệ nén + Cho bên thu biết số điểm ảnh dòng quét tài liệu 250 Thực hiện giải mã + So sánh tài liệu gốc sau giải nén để đánh giá chất lượng nén định tính định lượng Code Matlab: clc; im=imread('TestFax.bmp'); subplot(1,2,1) imshow(im) title('Anh goc'); %Ma Hoa So_Bit_Sau_Khi_Nen=0; Ky_Tu_Ma_Hoa=[]; Chieu_Dai_Ky_Tu=[]; for i=1:250 x=im(i,:); Dem_Lap=[]; Ky_Tu_Lap=[]; a=1; Ky_Tu_Lap(a)=x(1); Dem_Lap(a)=1; count=1; for j=2:250 if x(j)==x(j-1) Dem_Lap(a)=Dem_Lap(a)+1; else a=a+1; Ky_Tu_Lap(a)=im(i,j); Dem_Lap(a)=1; count=count+1; end end display(Dem_Lap) display(Ky_Tu_Lap) So_Bit_Sau_Khi_Nen = So_Bit_Sau_Khi_Nen + count*8*2; Ky_Tu_Ma_Hoa = [Ky_Tu_Ma_Hoa Ky_Tu_Lap]; Chieu_Dai_Ky_Tu = [Chieu_Dai_Ky_Tu Dem_Lap]; display([dec2bin(Dem_Lap,8),dec2bin(Ky_Tu_Lap,8)]); end fprintf('\nSo bit sau nen =%.3f bit\n',So_Bit_Sau_Khi_Nen); %Giai Ma x=[]; Ma_Tran_Giai_Ma=zeros(250,250); for a=1:length(Chieu_Dai_Ky_Tu) x=[x Ky_Tu_Ma_Hoa(a)*ones(1,Chieu_Dai_Ky_Tu(a))]; end count=1; for i=1:250 for j=1:250 Ma_Tran_Giai_Ma(i,j)= x(count); count=count+1; end end kq=0; if im==Ma_Tran_Giai_Ma kq=1; end fprintf('Kiem tra xem day co phai nen khong ton hao hay khong?\n'); if kq==0 fprintf('Nen co ton hao\n'); else fprintf('Nen Khong ton hao\n'); end Ty_Le_Nen_Fax=(64078/(So_Bit_Sau_Khi_Nen/8)); fprintf('\nTy Le Nen Fax :%.4f\n\n',Ty_Le_Nen_Fax); subplot(1,2,3) imshow(Ma_Tran_Giai_Ma) title('Anh Giai Ma'); ➢ Kết quả: So bit sau nen =15520.000 bit Kiem tra xem day co phai nen khong ton hao hay khong? Nen Khong ton hao Ty Le Nen Fax :33.0299 ➢ Nhận xét: Chất lượng hình ảnh tốt tương đối giống với ảnh gốc BÀI 3: KỸ THUẬT SỐ HÓA TÍN HIỆU Bài 1: Cho ảnh xám Test.bmp Thay đổi tần số lấy mẫu ảnh Quan sát ảnh, so sánh, đánh giá chất lượng dung lượng ảnh, rút nhận xét Từ chọn tần số lấy mẫu tối ưu Code Matlab: img=imread('Test.bmp'); figure imgl=imresize(img,1/2); img2=imresize(img,1/4); img3=imresize(img,1/8); img4=imresize(img,1/16); img5=imresize(img,1/32); img6=imresize(img,1/64); img7=imresize(img,1/128); subplot(2,4,1); imshow(img); title('2048x2048') subplot(2,4,2); imshow(imgl); title(' 1024x1024') subplot(2,4,3); imshow(img2); title('512x512') subplot(2,4,4); imshow(img3); title('256x256') subplot(2,4,5); imshow(img4); title('128x128') subplot(2,4,6); imshow(img5); title('64x64') subplot(2,4,7); imshow(img6); title('32x32') subplot(2,4,8); imshow(img7); title('16x16') ➢ Kết quả: ➢ Nhận xét: - Tần số lấy mẫu thấp làm giảm chi tiết độ phân giải ảnh, tần số lấy mẫu cao tăng độ chi tiết độ phân giải ảnh làm tăng dung lượng ảnh - Ta chọn tần số lấy mẫu ảnh mà có kích thước 512×512 256×256 vừa đảm bảo đạt sự cân chất lượng dung lượng ảnh • cầu Chụp ảnh nhóm, chuyển ảnh xám thực hiện lại yêu Code Matlab: imge=imread('anhnhom.jpg'); img= rgb2gray(imge); figure imgl=imresize(img,1/2); img2=imresize(img,1/4); img3=imresize(img,1/8); img4=imresize(img,1/16); img5=imresize(img,1/32); img6=imresize(img,1/64); img7=imresize(img,1/128); subplot(2,4,1); imshow(img); title('2048x2048') subplot(2,4,2); imshow(imgl); title(' 1024x1024') subplot(2,4,3); imshow(img2); title('512x512') subplot(2,4,4); imshow(img3); title('256x256') subplot(2,4,5); imshow(img4); title('128x128') subplot(2,4,6); imshow(img5); title('64x64') subplot(2,4,7); imshow(img6); title('32x32') subplot(2,4,8); imshow(img7); title('16x16') ➢ Kết quả: ➢ Nhận xét: - Tần số lấy mẫu thấp làm giảm chi tiết độ phân giải ảnh, tần số lấy mẫu cao tăng độ chi tiết độ phân giải ảnh làm tăng dung lượng ảnh - Ta chọn tần số lấy mẫu ảnh mà có kích thước 512×512 256×256 vừa đảm bảo đạt sự cân chất lượng dung lượng ảnh Bài 2: Cho ảnh xám Test.bmp Thay đổi số mức lượng tử hoá ảnh Quan sát ảnh, so sánh, đánh giá chất lượng ảnh dung lượng ảnh, rút nhận xét Từ chọn số mức lượng tử hoá tối ưu Code Matlab: PIC = imread('Test.bmp'); pic = rgb2gray(PIC); figure subplot(2,4,1) b = 8; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh goc bit') subplot(2,4,2) b = 7; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,3) b = 6; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,4) b = 5; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,5) b = 4; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(246) b = 3; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(247) b = 2; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(248) b = 1; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh nhi phan') ➢ Kết quả: ➢ Nhận xét: - Số lượng pixel nhiều, hình ảnh chi tiết sắc nét Tuy nhiên, việc sử dụng nhiều pixel làm tăng dung lượng ảnh, gây khó khăn việc lưu trữ chia sẻ ảnh internet - Mức lượng tử hoá tối ưu khoản bit đến bit để đảm sự cân chất lượng ảnh dung lượng ảnh, độ sắc nét chi tiết, số lượng bit vừa đủ ảnh không bị q nặng khó quản lý • Chụp ảnh nhóm, chuyển ảnh xám thực hiện lại yêu cầu Code Matlab: PIC = imread('anhnhom.jpg'); pic = rgb2gray(PIC); figure subplot(2,4,1) b = 8; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh goc bit') subplot(2,4,2) b = 7; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,3) b = 6; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,4) b = 5; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,5) b = 4; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(246) b = 3; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(247) b = 2; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(248) b = 1; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh nhi phan') ➢ Kết quả: ➢ Nhận xét: - Số lượng pixel nhiều, hình ảnh chi tiết sắc nét Tuy nhiên, việc sử dụng nhiều pixel làm tăng dung lượng ảnh, gây khó khăn việc lưu trữ chia sẻ ảnh internet - Mức lượng tử hoá tối ưu khoản bit đến bit để đảm sự cân chất lượng ảnh dung lượng ảnh, độ sắc nét chi tiết, số lượng bit vừa đủ ảnh không bị nặng khó quản lý Bài 3: Chọn ảnh màu chụp nhóm • Thay đổi tần số lấy mẫu ảnh Quan sát ảnh, so sánh, đánh giá chất lượng ảnh dung lượng ảnh, rút nhận xét Code Matlab: clc; im=imread('anhnhom.jpg'); figure imgr1=imresize(im,1/2); imgr2=imresize(im,1/4); imgr3=imresize(im,1/8); imgr4=imresize(im,1/16); imgr5=imresize(im,1/32); imgr6=imresize(im,1/64); imgr7=imresize(im,1/128); subplot(2,4,1); imshow(im); title('2048x2048') subplot(2,4,2); imshow(imgr1); title(' 1024x1024') subplot(2,4,3); imshow(imgr2); title('512x512') subplot(2,4,4); imshow(imgr3); title('256x256') subplot(2,4,5); imshow(imgr4); title('128x128') subplot(2,4,6); imshow(imgr5); title('64x64') subplot(2,4,7); imshow(imgr6); title('32x32') subplot(2,4,8); imshow(imgr7); title('16x16') ➢ Kết quả: ➢ Nhận xét: - Tần số lấy mẫu thấp làm giảm chi tiết độ phân giải ảnh, tần số lấy mẫu cao tăng độ chi tiết độ phân giải ảnh làm tăng dung lượng ảnh Ta chọn tần số lấy mẫu ảnh mà có kích thước 512×512 256×256 vừa đảm bảo đạt sự cân chất lượng dung lượng ảnh • Thay đổi số mức lượng tử hoá ảnh Quan sát ảnh, so sánh, đánh giá chất lượng ảnh dung lượng ảnh, rút nhận xét Lưu ý: Cần quan sát sự thay đổi màu sắc Tần số lấy mẫu số mức lượng tử hố có ảnh hưởng đến màu sắc? Code Matlab: pic = imread('anhnhom.jpg'); figure subplot(2,4,1) b = 8; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh goc bit') subplot(2,4,2) b = 7; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,3) b = 6; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,4) b = 5; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(2,4,5) b = 4; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(246) b = 3; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(247) b = 2; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh bit') subplot(248) b = 1; d = 2^(8-b); z = round(pic/d); changeBit = z*d; imshow(changeBit) title('Anh nhi phan') ➢ Kết quả: ➢ Nhận xét: - Số lượng pixel nhiều, hình ảnh chi tiết sắc nét Tuy nhiên, việc sử dụng nhiều pixel làm tăng dung lượng ảnh, gây khó khăn việc lưu trữ chia sẻ ảnh internet Mức lượng tử hoá tối ưu khoản bit đến bit để đảm sự cân chất lượng ảnh dung lượng ảnh, độ sắc nét chi tiết, số lượng bit vừa đủ ảnh không bị nặng khó quản lý

Ngày đăng: 20/09/2023, 15:47

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w