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

Đề Tài Mô Phỏng Thuật Toán Tái Tạo Ảnh Trong Chụp Cắt Lớp Vi Tính.pdf

46 2 0

Đ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

1 Đề tài Mô phỏng thuật toán tái tạo ảnh trong chụp cắt lớp vi tính MỤC LỤC I Tổng quan 2 II Các hàm xử lý ảnh cơ bản trong Matlab 2 1 Đọc và ghi dữ liệu ảnh 2 2 Chuyển đổi giữa các kiểu ảnh 2 3 Các p[.]

Đề tài: Mơ thuật tốn tái tạo ảnh chụp cắt lớp vi tính MỤC LỤC I Tổng quan II Các hàm xử lý ảnh Matlab Đọc ghi liệu ảnh 2 Chuyển đổi kiểu ảnh Các phép toán số học liệu ảnh 4 Các hàm hiển thị ảnh Matlab 5 Các phép biến đổi hình học 5.1 Phép nội suy ảnh 5.2 Thay đổi kích thước ảnh 5.3 Phép quay ảnh 5.4 Trích xuất ảnh Các hàm tạo nhiễu 6.1 Nhiễu Salt and Pepper: 6.2 Nhiễu Gaussian 6.3 Nhiễu Speckle 10 Các hàm lọc nhiễu 12 7.1 Mean filtering (Bộ lọc trung bình) 12 7.2 Median filtering ( Lọc trung vị) 13 7.3.Lọc Gaussian 13 Phép biến đổi RADON 14 III Các phương pháp tái tạo ảnh 16 Phương pháp tái tạo ảnh đại số 16 Phương pháp chiếu ngược có lọc 18 IV Chương trình mơ 20 Giao diện 20 Code Matlab 21 TÀI LIỆU THAM KHẢO 46 I Tổng quan CT từ viết tắt Computed Tomography có nghĩa “chụp ảnh lát cắt tính tốn”, CT có khả tạo hình ảnh “xun qua” thể bệnh nhân CT cịn có tên gọi khác CAT (Computed axial tomography) II Các hàm xử lý ảnh Matlab Đọc ghi liệu ảnh  Hàm imread: đọc file ảnh với định dạng ảnh biết lưu lại dạng ma trận biểu diễn ảnh Matlab Cú pháp: A = imread(filename,fmt) filename: chuỗi xác định tên file cần đọc với đường dẫn (nếu file không nằm thư mục hành fmt : chuỗi cho biết định dạng ảnh, thí dụ ‘bmp’, ‘gif’, ‘jpg’, ‘ppm’  Hàm imwrite: cho phép lưu ảnh biểu diễn ma trân Matlab thành file ảnh định dạng biết Cú pháp: imwrite(A,filename,fmt)  Hàm imfinfo: dùng để xem thông số file ảnh Cú pháp: imfinfo (filename,fmt) Các thơng tin cung cấp hàm imfinfo là: filename, filemoddate, format, formatversion, width, height, bitdepth, colortype Chuyển đổi kiểu ảnh  Dither: Tạo ảnh nhị phân từ ảnh trắng RGB ma trận màu map phương pháp dithering dither(RGB,map) dither(I)  Gray2ind : : Chuyển ảnh nhị phân BW ảnh intensity I thành ảnh indexed thông qua ma trận tuyến tính gray(n) Cú pháp: [X,Map] = gray2ind(IN) [X,Map] = gray2ind(BW,N)  Grayslice: Chuyển ảnh trắng đen I thành ảnh indexed X cách lấy ngưỡng Các giá trị ngưỡng xác định vector v n (khi giá trị ngưỡng 1/n, 2/n,…(n-1)/n Cú pháp: x = grayslice(I,N) x = grayslice(I,V)  Im2bw: Chuyển ảnh trắng đen, ảnh indexed ảnh RGB thành ảnh nhị phân BW cách lấy ngưỡng level Cú pháp: bw = im2bw(I,level) bw = im2bw(x,map,level) bw = im2bw(rgb,level)  Ind2gray: Chuyển ảnh indexed x với ma trận màu map thành ảnh trắng đen I Cú pháp: i = ind2gray(x,map)  Ind2rgb: Chuyển ảnh indenxed x với ma trận màu map thành ảnh RGB Cú pháp: rgb=ind2rgb(x,map)  Mat2gray: Tạo ảnh trắng đen từ ma trận a, amin, amax thuộc [0(đen),1(trắng)] Cú pháp: i= mat2gray(a,[amin amax])  Rgb2gray: Chuyển ảnh RGB thành ảnh trắng đen I Cú pháp: i = rgb2gray(rgb)  Rgb2ind: Chuyển ảnh RGB thành ảnh indexed [X,map] Cú pháp: [x map] = rgb2ind(rgb,n) x = rgb2ind(rgb,map) [x,map] = rgb2ind(rgb,tol) Các phép toán số học liệu ảnh Các phép toán số học liệu ảnh bao gồm phép cộng, trừ, nhân chia Tuy nhiên, Matlab hỗ trợ phép toán kiểu double nên cần thực chuyển đổi kiểu trước thực Để giảm bớt thao tác này, IPT có cung cấp hàm thực phép tốn số học ảnh mà chấp nhận kiểu liệu ảnh trả kết thuộc kiểu với toán hạng Các hàm xử lý liệu tràn cách tự động  Imabsdiff: Trừ phần tử y từ phần tử tương ứng x, sau trả trị tuyệt đối hiệu Cú pháp: z = imabsdiff (x,y)  Imadd: cộng hai ảnh cộng ảnh với số Cú pháp: z = imadd (x,y,out_class)  Imcomplement: Lấy bù ảnh im Cú pháp: imcomplement (im)  Imdivide: Chia phần tử ảnh x cho phần tử tương ứng y, giá trị phân số làm tròn Cú pháp: z = imdivide (x,y)  Imlincomb: Lấy tổ hợp tuyến tính ảnh: z= k1*a1+k2*a2+…+kn*an+kout_class Cúpháp: z = imlincomb (k1,a1,k2,a2,…,kn,an,kout_class)  Immultiply: Nhân hai ảnh nhân ảnh với số, kết bị tràn giới hạn lại tầm cho phép Cú pháp: z= immultiply (x,y)  Imsubstract: Trừ hai ảnh trừ ảnh với số, kết bị tràn giới hạn lại tầm cho phép Cú pháp: z = imsubstract (x,y) Các hàm hiển thị ảnh Matlab Matlab cung cấp hai hàm hiển thị image imagesc Ngồi IPT có hai hàm hiển thị ảnh khác, imview imshow  Hàm image(X,Y,C): hiển thị hình ảnh biểu diễn ma trân C kích thước M×N lên trục tọa độ hành X,Y vector xác định vị trí pixel C(1,1) C(M,N) hệ trục hành  Hàm imagesc: có chức tương tự hàm image, ngoại trừ việc liệu ảnh co giãn để sử dụng cho toàn đồ màu hành  Hàm imview: cho phép hiển thị hình ảnh cửa sổ riêng, Java, gọi image Viewer Image Viewer cung cấp cơng cụ dị tìm xác định giá trị pixel cách linh hoạt  Hàm imshow: tạo đối tượng đồ họa thuộc loại image hiển thị ảnh figure Hàm imshow tự động thiết lập giá trị đối tượng image, axes figure để thể ảnh Các phép biến đổi hình học 5.1 Phép nội suy ảnh Nội suy trình ước lượng giá trị điểm nằm hai pixel có giá trị biết - IPT cung cấp phương pháp nội suy ảnh: Nội suy theo lân cận gần nhất, nội suy song tuyến tính nội suy bicubic - Cả phương pháp thực theo nguyên tắc chung: để xác định giá trị pixel ảnh nội suy, ta tìm điểm ảnh ban đầu tương ứng với pixel đó, sau giá trị pixel ảnh tính trung bình có trọng số tập pixel lân cạn điểm vừa xác định, trọng số pixel phụ thuộc vào khoảng cách tới điểm  Phương pháp lân cận (nearest neighbor): pixel gán giá trị pixel chứa điểm tương ứng ảnh ban đầu  Phương pháp song tuyến tính (bilinear interpolation): pixel gán trung bình có trọng số pixel lân cận kích thước 2×2  Phương pháp bicubic, pixel gán trung bình có trọng số pixel lân cận kích thước 4×4 5.2 Thay đổi kích thước ảnh Hàm imresize cho phép người sử dụng thay đổi kích thước ảnh Ngồi kích thước ảnh mới, người sử dụng cịn xác định phương pháp nội suy dùng loại lọc dùng để chống nhiễu Cú pháp: b = imresize(a,m,method): tạo ảnh b gấp m lần ảnh a b = imresize(a,[mrows mcols],method) b = imresize(a,[mrows mcols],method,N) b = imresize(a,[mrows mcols],method,h) Trong đó: method: phương pháp nội suy dùng: ‘nearest’, ‘bilinear’,’bicubic’; mặc định ‘nearest’ 5.3 Phép quay ảnh Để thực phép quay ảnh, ta sử dụng hàm imrotate Ngồi hai thơng số ảnh gốc góc quay, người sử dụng xác định phương pháp nội suy dùng kích thước ảnh Cú pháp: b = imrotate (a,angle,method,Bbox) Trong đó: a: ảnh gốc angle: góc quay method: pp nội suy, mạc định ‘nearest’ Bbox: kích thước ảnh mới: ‘crop’, ‘loose’ Mặc định ‘loose’ (tăng kích thước cần) Chỉ định phương pháp nội suy sử dụng: - Theo mặc định, hàm imrotate sử dụng pp nội suy thứ (nearest-neighbor interpolation) để tính giá trị pixel ảnh Tuy nhiên, ta pp nội suy khác như: ‘bilinear’, ‘bicubic’ Ví dụ: Quay ảnh góc 35° ngược chiều kim đồng hồ, dùng phương pháp nội suy song tuyến tính: I = imread('circuit.tif'); J = imrotate(I,35,'bilinear'); K = imrotate(I,35,'bilinear',’crop’); imshow(I) figure, imshow(J) figure, imshow(K) 5.4 Trích xuất ảnh Khi cần trích xuất phần ảnh gốc, ta dùng hàm imcrop  Xác định cụ thể vị trí phần ảnh cần trích xuất (dưới dạng hình chữ nhật) Cú pháp: x2 = imrotate(x,map,rect) x2 = imrotate(a,rect) %indexed %grayscale or RGB đó, rect = [Xmin Ymin width height]  Sử dụng mouse để chọn phần ảnh cần trích xuất Ta không cần cung cấp thông số rect, thực hàm này, trỏ chuyển sang dạng chữ thập, người dùng kéo chuột để chọn phần ảnh cần trích xuất sau thả chuột Các hàm tạo nhiễu 6.1 Nhiễu Salt and Pepper: - Còn gọi nhiễu xung, nhiễu nhị phân Nếu b > a: -Mức xám b xuất tương ứng điểm sáng ảnh -Mức xám a tương ứng với điểm đen xuất ảnh Để cộng nhiễu “Salt & pepper” vào ảnh ta dùng câu lệnh sau : Cú pháp: t = imnoise(image,’salt & pepper’,d) Trong đó: d: Mật độ nhiễu Số lượng nhiễu cộng vào mặc định 10% Ta cung cấp thêm thông số để thay đổi lượng nhiễu cộng vào Hình 1: Ảnh gốc ảnh nhiễu Salt & Pepper 6.2 Nhiễu Gaussian - Nhiễu Gaussian dạng nhiễu cộng tổng điểm ảnh ban đầu điểm ảnh ngẫu nhiên tạo thành điểm ảnh thu ảnh có chứa nhiễu Gaussian Là dạng lý tưởng nhiễu trắng, gây dao động ngẫu nhiên tín hiệu Nhiễu Gaussian nhiễu trắng có phân bố chuẩn - Nếu ta có ảnh I, nhiễu Gaussian N ta có ảnh nhiễu = I +N - Để tạo ảnh với nhiễu Gaussian ta dùng câu lệnh sau : Cú pháp: t = imnoise(image,’gaussian’,d) - Giá trị mặc định kỳ vọng phương sai nhiễu 0.01 Hình 2: Ảnh gốc ảnh nhiễu Gaussian 6.3 Nhiễu Speckle - Nhiễu Speckle dạng nhiễu nhân, mơ hình cách nhân giá trị ngẫu nhiên với giá trị pixel (điểm ảnh) Nhiễu Speckle vấn đề quan tâm chủ yếu ứng dụng radar - Trong Matlab ảnh với nhiễu Speckle tính tốn : I*(1 + N) Cú pháp: t = imnoise(t,’speckle’,d) - Nhiễu N có phân phối chuẩn với giá trị trung bình =0 Có thể cung cấp thêm thơng số để xác định giá trị kỳ vọng N, giá trị mặc định 0.04 10 global anhnhieu; Bo_loc = get(handles.popupmenu5,'value'); a = get(handles.edit15,'string'); a = str2num(a); b = get(handles.edit16,'string'); b = str2num(b); k = ones(a,b)/(a*b); c = get(handles.edit17,'string'); c = str2num(c); switch Bo_loc case L = imfilter(anhnhieu,k); axes(handles.axes6); imshow(L); case L = medfilt2(anhnhieu); axes(handles.axes6); imshow(L); case L = imfilter(anhnhieu,fspecial('gaussian',[a b],c)); axes(handles.axes6); imshow(L); end function edit15_Callback(hObject, eventdata, handles) % hObject handle to edit15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit15 as text % str2double(get(hObject,'String')) returns contents of edit15 as a double 32 % - Executes during object creation, after setting all properties function edit15_CreateFcn(hObject, eventdata, handles) % hObject handle to edit15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit16_Callback(hObject, eventdata, handles) % hObject handle to edit16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit16 as text % str2double(get(hObject,'String')) returns contents of edit16 as a double % - Executes during object creation, after setting all properties function edit16_CreateFcn(hObject, eventdata, handles) % hObject handle to edit16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called 33 % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit17_Callback(hObject, eventdata, handles) % hObject handle to edit17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit17 as text % str2double(get(hObject,'String')) returns contents of edit17 as a double % - Executes during object creation, after setting all properties function edit17_CreateFcn(hObject, eventdata, handles) % hObject handle to edit17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end 34 function pushbutton10_Callback(hObject, eventdata, handles) % hObject handle to pushbutton10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global A; global B; global C; global D; global E; global E2; global E3; global E4; global F; global F2; global F3; global F4; global G; A = [0 6; 7 1; 8] % function E = ART(A) % Chieu ngang S1(1,1) = sum(A(1,:)); S1(1,2) = sum(A(2,:)); S1(1,3) = sum(A(3,:)); B(1,1) B(1,2) B(1,3) B(2,1) B(2,2) B(2,3) B(3,1) B(3,2) B(3,3) = = = = = = = = = S1(1,1)/3; S1(1,1)/3; S1(1,1)/3; S1(1,2)/3; S1(1,2)/3; S1(1,2)/3; S1(1,3)/3; S1(1,3)/3; S1(1,3)/3 % (b) 35 B = [B(1,1) B(1,2) B(1,3);B(2,1) B(2,2) B(2,3);B(3,1) B(3,2) B(3,3)] % Chieu S2(1,1) S2(1,2) S2(1,3) S2(1,4) S2(1,5) cheo phai = B(3,1); = B(2,1) + B(3,2); = B(1,1) + B(2,2) + B(3,3); = B(1,2) + B(2,3); = B(1,3); S3(1,1) S3(1,2) S3(1,3) S3(1,4) S3(1,5) = = = = = A(3,1); A(2,1) + A(3,2); A(1,1) + A(2,2) + A(3,3); A(1,2) + A(2,3); A(1,3); S4 = S3 - S2; C(1,1) = B(1,1) + S4(1,3)/3; C(1,2) = B(1,2) + S4(1,4)/2; C(1,3) = B(1,3) + S4(1,5)/1; C(2,1) = B(2,1) + S4(1,2)/2; C(2,2) = B(2,2) + S4(1,3)/3; C(2,3) = B(2,3) + S4(1,4)/2; C(3,1) = B(3,1) + S4(1,1)/1; C(3,2) = B(3,2) + S4(1,2)/2; C(3,3) = B(3,3) + S4(1,3)/3; %(c) C = [C(1,1) C(1,2) C(1,3);C(2,1) C(2,2) C(2,3);C(3,1) C(3,2) C(3,3)] % Chieu S5(1,1) S5(1,2) S5(1,3) doc = sum(C(:,1)); = sum(C(:,2)); = sum(C(:,3)); S6(1,1) = sum(A(:,1)); S6(1,2) = sum(A(:,2)); S6(1,3) = sum(A(:,3)); S7 = S6 - S5; 36 D(1,1) = C(1,1) + S7(1,1)/3; D(1,2) = C(1,2) + S7(1,2)/3; D(1,3) = C(1,3) + S7(1,3)/3; D(2,1) = C(2,1) + S7(1,1)/3; D(2,2) = C(2,2) + S7(1,2)/3; D(2,3) = C(2,3) + S7(1,3)/3; D(3,1) = C(3,1) + S7(1,1)/3; D(3,2) = C(3,2) + S7(1,2)/3; D(3,3) = C(3,3) + S7(1,3)/3; %(d) D = [D(1,1) D(1,2) D(1,3);D(2,1) D(2,2) D(2,3);D(3,1) D(3,2) D(3,3)] % Chieu S8(1,1) S8(1,2) S8(1,3) S8(1,4) S8(1,5) cheo trai = D(1,1); = D(1,2) + D(2,1); = D(1,3) + D(2,2) + D(3,1); = D(2,3) + D(3,2); = D(3,3); S9(1,1) S9(1,2) S9(1,3) S9(1,4) S9(1,5) = = = = = A(1,1); A(1,2) + A(2,1); A(1,3) + A(2,2) + A(3,1); A(2,3) + A(3,2); A(3,3); S10 = S9 - S8; E(1,1) = D(1,1) + S10(1,1)/1; E(1,2) = D(1,2) + S10(1,2)/2; E(1,3) = D(1,3) + S10(1,3)/3; E(2,1) = D(2,1) + S10(1,2)/2; E(2,2) = D(2,2) + S10(1,3)/3; E(2,3) = D(2,3) + S10(1,4)/2; E(3,1) = D(3,1) + S10(1,3)/3; E(3,2) = D(3,2) + S10(1,4)/2; E(3,3) = D(3,3) + S10(1,5)/1; %(e) E = [E(1,1) E(1,2) E(1,3);E(2,1) E(2,2) E(2,3);E(3,1) E(3,2) E(3,3)] 37 % Lap lan %Chieu ngang S11(1,1) = sum(E(1,:)); S11(1,2) = sum(E(2,:)); S11(1,3) = sum(E(3,:)); E2(1,1) = S11(1,1)/3; E2(1,2) = S11(1,1)/3; E2(1,3) = S11(1,1)/3; E2(2,1) = S11(1,2)/3; E2(2,2) = S11(1,2)/3; E2(2,3) = S11(1,2)/3; E2(3,1) = S11(1,3)/3; E2(3,2) = S11(1,3)/3; E2(3,3) = S11(1,3)/3 % (E2) E2 = [E2(1,1) E2(1,2) E2(1,3);E2(2,1) E2(2,2) E2(2,3);E2(3,1) E2(3,2) E2(3,3)] % Chieu cheo phai S12(1,1) = E2(3,1); S12(1,2) = E2(2,1) + E2(3,2); S12(1,3) = E2(1,1) + E2(2,2) + E2(3,3); S12(1,4) = E2(1,2) + E2(2,3); S12(1,5) = E2(1,3); S13(1,1) S13(1,2) S13(1,3) S13(1,4) S13(1,5) = = = = = E(3,1); E(2,1) + E(3,2); E(1,1) + E(2,2) + E(3,3); E(1,2) + E(2,3); E(1,3); S14 = S13 - S12; E3(1,1) E3(1,2) E3(1,3) E3(2,1) E3(2,2) E3(2,3) E3(3,1) = = = = = = = E2(1,1) E2(1,2) E2(1,3) E2(2,1) E2(2,2) E2(2,3) E2(3,1) + + + + + + + S14(1,3)/3; S14(1,4)/2; S14(1,5)/1; S14(1,2)/2; S14(1,3)/3; S14(1,4)/2; S14(1,1)/1; 38 E3(3,2) = E2(3,2) + S14(1,2)/2; E3(3,3) = E2(3,3) + S14(1,3)/3; %(E3) E3 = [E3(1,1) E3(1,2) E3(1,3);E3(2,1) E3(2,2) E3(2,3);E3(3,1) E3(3,2) E3(3,3)] % Chieu doc S15(1,1) = sum(E3(:,1)); S15(1,2) = sum(E3(:,2)); S15(1,3) = sum(E3(:,3)); S16(1,1) = sum(E(:,1)); S16(1,2) = sum(E(:,2)); S16(1,3) = sum(E(:,3)); S17 = S16 - S15; E4(1,1) = E3(1,1) + S17(1,1)/3; E4(1,2) = E3(1,2) + S17(1,2)/3; E4(1,3) = E3(1,3) + S17(1,3)/3; E4(2,1) = E3(2,1) + S17(1,1)/3; E4(2,2) = E3(2,2) + S17(1,2)/3; E4(2,3) = E3(2,3) + S17(1,3)/3; E4(3,1) = E3(3,1) + S17(1,1)/3; E4(3,2) = E3(3,2) + S17(1,2)/3; E4(3,3) = E3(3,3) + S17(1,3)/3; %(E4) E4 = [E4(1,1) E4(1,2) E4(1,3);E4(2,1) E4(2,2) E4(2,3);E4(3,1) E4(3,2) E4(3,3)] % Chieu cheo trai S18(1,1) = E4(1,1); S18(1,2) = E4(1,2) + E4(2,1); S18(1,3) = E4(1,3) + E4(2,2) + E4(3,1); S18(1,4) = E4(2,3) + E4(3,2); S18(1,5) = E4(3,3); S19(1,1) S19(1,2) S19(1,3) S19(1,4) S19(1,5) = = = = = E(1,1); E(1,2) + E(2,1); E(1,3) + E(2,2) + E(3,1); E(2,3) + E(3,2); E(3,3); 39 S20 = S19 - S18; F(1,1) = E4(1,1) + S20(1,1)/1; F(1,2) = E4(1,2) + S20(1,2)/2; F(1,3) = E4(1,3) + S20(1,3)/3; F(2,1) = E4(2,1) + S20(1,2)/2; F(2,2) = E4(2,2) + S20(1,3)/3; F(2,3) = E4(2,3) + S20(1,4)/2; F(3,1) = E4(3,1) + S20(1,3)/3; F(3,2) = E4(3,2) + S20(1,4)/2; F(3,3) = E4(3,3) + S20(1,5)/1; %(F) F = [F(1,1) F(1,2) F(1,3);F(2,1) F(2,2) F(2,3);F(3,1) F(3,2) F(3,3)] % Lap lan %Chieu ngang S21(1,1) = sum(F(1,:)); S21(1,2) = sum(F(2,:)); S21(1,3) = sum(F(3,:)); F2(1,1) = S21(1,1)/3; F2(1,2) = S21(1,1)/3; F2(1,3) = S21(1,1)/3; F2(2,1) = S21(1,2)/3; F2(2,2) = S21(1,2)/3; F2(2,3) = S21(1,2)/3; F2(3,1) = S21(1,3)/3; F2(3,2) = S21(1,3)/3; F2(3,3) = S21(1,3)/3 % (F2) F2 = [F2(1,1) F2(1,2) F2(1,3);F2(2,1) F2(2,2) F2(2,3);F2(3,1) F2(3,2) F2(3,3)] % Chieu cheo phai S22(1,1) = F2(3,1); S22(1,2) = F2(2,1) + F2(3,2); S22(1,3) = F2(1,1) + F2(2,2) + F2(3,3); S22(1,4) = F2(1,2) + F2(2,3); S22(1,5) = F2(1,3); S23(1,1) = F(3,1); S23(1,2) = F(2,1) + F(3,2); 40 S23(1,3) = F(1,1) + F(2,2) + F(3,3); S23(1,4) = F(1,2) + F(2,3); S23(1,5) = F(1,3); S24 = S23 - S22; F3(1,1) = F2(1,1) + S24(1,3)/3; F3(1,2) = F2(1,2) + S24(1,4)/2; F3(1,3) = F2(1,3) + S24(1,5)/1; F3(2,1) = F2(2,1) + S24(1,2)/2; F3(2,2) = F2(2,2) + S24(1,3)/3; F3(2,3) = F2(2,3) + S24(1,4)/2; F3(3,1) = F2(3,1) + S24(1,1)/1; F3(3,2) = F2(3,2) + S24(1,2)/2; F3(3,3) = F2(3,3) + S24(1,3)/3; %(F3) F3 = [F3(1,1) F3(1,2) F3(1,3);F3(2,1) F3(2,2) F3(2,3);F3(3,1) F3(3,2) F3(3,3)] % Chieu doc S25(1,1) = sum(F3(:,1)); S25(1,2) = sum(F3(:,2)); S25(1,3) = sum(F3(:,3)); S26(1,1) = sum(F(:,1)); S26(1,2) = sum(F(:,2)); S26(1,3) = sum(F(:,3)); S27 = S26 - S25; F4(1,1) = F3(1,1) + S27(1,1)/3; F4(1,2) = F3(1,2) + S27(1,2)/3; F4(1,3) = F3(1,3) + S27(1,3)/3; F4(2,1) = F3(2,1) + S27(1,1)/3; F4(2,2) = F3(2,2) + S27(1,2)/3; F4(2,3) = F3(2,3) + S27(1,3)/3; F4(3,1) = F3(3,1) + S27(1,1)/3; F4(3,2) = F3(3,2) + S27(1,2)/3; F4(3,3) = F3(3,3) + S27(1,3)/3; %(F4) F4 = [F4(1,1) F4(1,2) F4(1,3);F4(2,1) F4(2,2) F4(2,3);F4(3,1) F4(3,2) F4(3,3)] 41 % Chieu cheo trai S28(1,1) = F4(1,1); S28(1,2) = F4(1,2) + F4(2,1); S28(1,3) = F4(1,3) + F4(2,2) + F4(3,1); S28(1,4) = F4(2,3) + F4(3,2); S28(1,5) = F4(3,3); S29(1,1) S29(1,2) S29(1,3) S29(1,4) S29(1,5) = = = = = F(1,1); F(1,2) + F(2,1); F(1,3) + F(2,2) + F(3,1); F(2,3) + F(3,2); F(3,3); S30 = S29 - S28; G(1,1) = F4(1,1) + S30(1,1)/1; G(1,2) = F4(1,2) + S30(1,2)/2; G(1,3) = F4(1,3) + S30(1,3)/3; G(2,1) = F4(2,1) + S30(1,2)/2; G(2,2) = F4(2,2) + S30(1,3)/3; G(2,3) = F4(2,3) + S30(1,4)/2; G(3,1) = F4(3,1) + S30(1,3)/3; G(3,2) = F4(3,2) + S30(1,4)/2; G(3,3) = F4(3,3) + S30(1,5)/1; %(G) G = [G(1,1) G(1,2) G(1,3);G(2,1) G(2,2) G(2,3);G(3,1) G(3,2) G(3,3)] axes(handles.axes7); image(G); function edit23_CreateFcn(hObject, eventdata, handles) % hObject handle to edit23 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called 42 % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % - Executes on button press in pushbutton13 function pushbutton13_Callback(hObject, eventdata, handles) % hObject handle to pushbutton13 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Close = questdlg('Would you like to close?','Close','Yes','No','No'); switch Close case 'Yes' close case 'No' end function edit24_Callback(hObject, eventdata, handles) % hObject handle to edit24 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit24 as text % str2double(get(hObject,'String')) returns contents of edit24 as a double 43 % - Executes during object creation, after setting all properties function edit24_CreateFcn(hObject, eventdata, handles) % hObject handle to edit24 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit25_Callback(hObject, eventdata, handles) % hObject handle to edit25 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit25 as text % str2double(get(hObject,'String')) returns contents of edit25 as a double % - Executes during object creation, after setting all properties function edit25_CreateFcn(hObject, eventdata, handles) % hObject handle to edit25 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called 44 % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % - Executes on button press in pushbutton17 function pushbutton17_Callback(hObject, eventdata, handles) % hObject handle to pushbutton17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global BG; global R; global I; global i; global j; i = str2num(get(handles.edit24,'string')); j = str2num(get(handles.edit25,'string')); theta = 0:i:j; [R,xp] = radon(BG,theta); axes(handles.axes7); image(theta,xp,R); I = iradon(R,i,j,max(size(BG))); axes(handles.axes7); image(I); 45 TÀI LIỆU THAM KHẢO Thí nghiệm Kỹ thuật thiết bị y sinh- BM Vật lý Kỹ thuật Y sinh, Khoa KHUD, ĐHBK TP.HCM Các phương pháp tái tạo ảnh chụp cắt lớp máy tính- HVKTQS CTSL - CHƯƠNG TRÌNH MƠ PHỎNG TẠO ẢNH CẮT LỚP BẰNG XQUANG VÀ ỨNG DỤNG KHẢO SÁT ẢNH GIẢ- Võ Nhật Quang (Bệnh viện Nhi đồng 1) , Huỳnh Quang Linh (Trường Đại học Bách khoa, ĐHQGHCM) Matlabthayhai.info http://www.matlabthayhai.info/p/chao-cac-ban.html Xử lý ảnh Matlab: https://www.youtube.com/watch?v=hFCRKm8bxSc Lập trình Giao diện Matlab: https://www.youtube.com/watch?v=-wi8DcmP9a4&t=809s Matlab cho xử lý ảnh ( sưu tầm) Matlab xử lý ảnh: Lọc nhiễu cho ảnh- Vi mạch - Diễn đàn Vi Mạch, Hệ Thống Nhúng, Trí Tuệ Nhân Tạo http://vimach.net/threads/matlab-trong-xu-ly-anh-loc-nhieu-cho-anh-p1.417/ Tomographic Image Reconstruction- Erika Garutti & Florian Grüner Kỹ thuật y sinh- Nguyễn Cơng Trình https://kythuatysinhblog.wordpress.com Thiết bị y tế https://thietbiyte1.wordpress.com/blog/ 10.Xử lý ảnh- TS.Nguyễn Thanh Hải 11.https://www.mathworks.com/videos/medical-image-processing-with-matlab81890.html 46 ... 45 TÀI LIỆU THAM KHẢO Thí nghiệm Kỹ thuật thiết bị y sinh- BM Vật lý Kỹ thuật Y sinh, Khoa KHUD, ĐHBK TP.HCM Các phương pháp tái tạo ảnh chụp cắt lớp máy tính- HVKTQS CTSL - CHƯƠNG TRÌNH MƠ PHỎNG... (Xp góc quay theta) III Các phương pháp tái tạo ảnh Phương pháp tái tạo ảnh đại số - Đối tượng tạo ảnh xem bao gồm nhiều đối tượng ảnh điểm Một số hữu hạn ảnh điểm tương ứng với số lượng gần liệu... từ vi? ??t tắt Computed Tomography có nghĩa ? ?chụp ảnh lát cắt tính tốn”, CT có khả tạo hình ảnh “xun qua” thể bệnh nhân CT cịn có tên gọi khác CAT (Computed axial tomography) II Các hàm xử lý ảnh

Ngày đăng: 15/03/2023, 01:30

Xem thêm:

w