Luận án Nghiên cứu giải pháp đo kiểm tra đánh giá độ mòn bồn chứa xăng dầu dung tích lớn sử dụng robot mang đầu dò siêu âm

Hiện nay công nghệ đo kiểm bằng phương pháp siêu âm tổ hợp pha (PAUT)

đã và đang được ứng dụng trong việc đo kiểm đánh giá độ mòn bồn chứa xăng dầu

có độ tin cậy và hiệu quả cao. Tuy nhiên, công việc đo kiểm độ mòn bồn chứa hiện

nay vẫn đang được tiến hành một cách thủ công mất nhiều thời gian, độ chính xác

phụ thuộc vào trình độ tay nghề của kỹ thuật viên siêu âm. Ngoài ra, do phải phụ

thuộc vào các dụng cụ gá đặt, giàn giáo nên chủ yếu chỉ triển khai đo kiển tra mòn ở

một số khu vực của bồn nên không thể xây dựng được bản đồ mòn tổng thể để có

được kết quả đành giá chính xác về chất lượng của bồn. Để rút ngắn thời gian đo

kiểm đánh giá độ mòn và cho phép đánh giá tổng thể về độ mòn của bồn cũng như

từng bước tự động hoá công việc đo kiểm, luận án “Nghiên cứu giải pháp đo kiểm

tra đánh giá độ mòn bồn chứa xăng dầu dung tích lởn sử dụng robot mang đầu dò

siêu âm” đã được thực hiện định hướng các nội dung chính sau:

1. Đề xuất quy trình thực nghiệm đo độ mòn ứng dụng kỹ thuật kiểm tra siêu

âm tổ hợp pha (PAUT) sử dụng robot mang đầu dò siêu âm PA được chứng nhận để

đo độ mòn bồn chứa xăng dầu dung tích lớn.

2. Đề xuất yêu cầu kỹ thuật cho robot mang đầu dò siêu âm PA thực hiện

kiểm tra đánh giá độ mòn bồn chứa xăng dầu dung tích lớn.

3. Xác định quảng đường di chuyển ngắn nhất của robot khi tiến hành mang

đầu dò siêu âm PA kiểm tra mòn bồn chứa trên cơ sở thuật toán PSO. Kết quả tính

toán được mô phỏng trên phần mềm MATLAB và được kiểm chứng bằng thực

nghiệm trên mô hình bồn chứa.

4. Đề xuất giải pháp “quét chồng biên ảnh”, trong đó ảnh thứ (i) có biên ảnh

bên phải trùng với biên ảnh bên trái của ảnh thứ (i+1) với độ rộng 5 mm để có thể

tìm ảnh, so khớp biên ảnh xác định các ảnh liền kề nhau nhằm phục vụ cho việc

ghép ảnh xây dựng tạo lập bản đồ mòn.

5. Trên cơ sở giải pháp “quét chồng biên ảnh” và phương án đường di chuyển

ngắn nhất, đề xuất phương án điều khiển robot mang đầu dò siêu âm PA thực hiện

kiểm tra mòn để thu thập ảnh mòn C-Scan của bồn chứa kiểm tra. Bên cạnh đó, việc

chia lưới bồn chứa thành các khu vực 1000 x 1000 mm2 để triển khai công việc đov

kiểm tra siêu âm mòn có độ chính xác cao nhờ xác định, điều chỉnh chính xác tọa

độ của robot cũng như thứ tự các lượt quét, kế hoạch hoá việc đo kiểm tra siêu âm

mòn bồn chứa cũng được đề xuất.

6. Xây dựng phần mềm ghép ảnh tạo dựng bản đồ mòn ứng dụng phần mềm

MATLAB từ dữ liệu hình ảnh C-Scan thu thập được từ quá trình thực nghiệm đo

mòn bằng phương pháp kiểm tra siêu âm PA. Phần mềm cũng cung cấp tính năng

phân tích, xác định chính xác các thông số mòn như: vị trí, độ sâu và diện tích của

khuyết tật mòn.

Kết quả đo kiểm độ mòn sử dụng robot mang đầu dò siêu âm PA ứng dụng

quảng đường ngắn nhất tìm được theo thuật toán PSO được thực nghiệm kiểm tra

trên mô hình bồn chứa được chế tạo theo tiêu chuẩn API 650:2016 và phần mềm

ghép ảnh mòn đã phát triển đã mang đến các kết quả sau:

- Robot mang đầu dò PA thực hiện tốt việc di chuyển theo phương án quảng

đường ngắn nhất tìm được trên cơ sở thuật toán PSO.

- Các ảnh mòn thu thập được có chất lượng gần như tương đồng nhau đạt

95% khoảng tin cậy của phép đo;

- Giải pháp quét chồng biên ảnh giúp phần mềm ghép ảnh hoạt động hiệu

quả, nhanh chóng xác định được các ảnh kề liền nhau và xây dựng được bản đồ

mòn tổng thể;

- Kết quả phân tích đánh giá độ mòn từ phần mềm phát triển trên cơ sở các

kết quả 5 lần thực nghiệm (tương ứng 5 bản đồ mòn) gần như tương đồng nhau. Kết

quả này cũng được so sánh cho thấy đồng nhất với kết quả được thực hiện thủ công

do công ty Giải pháp Kiểm định Việt Nam (VISCO NDT) thực hiện.

pdf 191 trang chauphong 16/08/2022 340
Bạn đang xem 20 trang mẫu của tài liệu "Luận án Nghiên cứu giải pháp đo kiểm tra đánh giá độ mòn bồn chứa xăng dầu dung tích lớn sử dụng robot mang đầu dò siêu âm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Luận án Nghiên cứu giải pháp đo kiểm tra đánh giá độ mòn bồn chứa xăng dầu dung tích lớn sử dụng robot mang đầu dò siêu âm

Luận án Nghiên cứu giải pháp đo kiểm tra đánh giá độ mòn bồn chứa xăng dầu dung tích lớn sử dụng robot mang đầu dò siêu âm
BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT 
THÀNH PHỐ HỒ CHÍ MINH 
---oo0oo--- 
TÔ THANH TUẦN 
NGHIÊN CỨU GIẢI PHÁP ĐO KIỂM TRA ĐÁNH GIÁ 
ĐỘ MÒN BỒN CHỨA XĂNG DẦU DUNG TÍCH LỚN 
SỬ DỤNG ROBOT MANG ĐẦU DÒ SIÊU ÂM 
LUẬN ÁN TIẾN SĨ 
NGÀNH: KỸ THUẬT CƠ KHÍ 
MÃ SỐ: 9520103 
Tp. Hồ Chí Minh, tháng 08/2021 
BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT 
THÀNH PHỐ HỒ CHÍ MINH 
--- oOo --- 
TÔ THANH TUẦN 
NGHIÊN CỨU GIẢI PHÁP ĐO KIỂM TRA ĐÁNH GIÁ 
ĐỘ MÒN BỒN CHỨA XĂNG DẦU DUNG TÍCH LỚN 
SỬ DỤNG ROBOT MANG ĐẦU DÒ SIÊU ÂM 
NGÀNH: KỸ THUẬT CƠ KHÍ - 9520103 
Hướng dẫn khoa học 1: PGS. TS. Đặng Thiện Ngôn 
Hướng dẫn khoa học 2: PGS. TS. Lê Chí Cương 
Phản biện 1: 
Phản biện 2: 
Phản biện 3: 
TP. HCM, tháng 08 năm 2021 
i 
LÝ LỊCH CÁ NHÂN 
I. THÔNG TIN CÁ NHÂN 
- Họ và tên: Tô Thanh Tuần 
- Ngày sinh: 04/12/1981 - Nơi sinh: Đồng Nai - Nam/Nữ: Nam 
- Địa chỉ: Tổ 8, Ấp Hiền Hòa, Phước Thái, Long Thành, Đồng Nai. 
- Điện thoại: 0909302901 
- Email: tothanhtuan81@yahoo.com 
- Cơ quan - nơi làm việc: Trường Cao đẳng Công nghệ Quốc tế LILAMA2 
- Địa chỉ cơ quan: Km 32, QL51, Long Phước, Long Thành, Đồng Nai. 
II. QUÁ TRÌNH ĐÀO TẠO 
- Từ 2000-2005: Sinh viên ngành Thiết kế máy, Trường Đại học Sư phạm Kỹ 
thuật Tp. HCM. 
- Từ 2009-2011: Học viên cao học ngành Kỹ thuật cơ khí, Trường Đại học Sư 
phạm Kỹ thuật Tp. HCM. 
- Từ 2013 - nay: Nghiên cứu sinh ngành Kỹ thuật cơ khí, Trường Đại học Sư 
phạm Kỹ thuật Tp. HCM. 
III. QUÁ TRÌNH CÔNG TÁC 
- Từ 2006 – nay: Trường Cao đẳng Công nghệ Quốc tế LILAMA2. 
Tp. Hồ Chí Minh, ngày 30 tháng 8 năm 2021 
 (Ký tên và ghi rõ họ tên) 
 Tô Thanh Tuần 
ii 
LỜI CAM ĐOAN 
Tôi cam đoan đây là công trình nghiên cứu của tôi. Các số liệu, kết quả nêu trong 
luận án là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào 
khác. 
Tp. Hồ Chí Minh, ngày 30 tháng 8 năm 2021 
 (Ký tên và ghi rõ họ tên) 
 Tô Thanh Tuần 
iii 
LỜI CẢM ƠN 
Trước tiên, tôi xin gửi lời cảm ơn sâu sắc đến các giảng viên hướng dẫn 
Thầy PGS.TS. Đặng Thiện Ngôn và PGS.TS. Lê Chí Cương nhờ những định 
hướng, gợi ý nghiên cứu hết sức quý báu, những chỉ dẫn cụ thể và những ý kiến 
phản biện của quý Thầy đã giúp tôi hoàn thành luận án. Một lần nữa xin được bày 
tỏ lòng cảm ơn sâu sắc đến quý Thầy. 
Xin gửi lời cảm ơn đến tất cả Thầy/Cô khoa Cơ khí Chế tạo máy trường đại 
học Sư phạm Kỹ thuật Tp. HCM đã truyền đạt các kiến thức nền tảng quý báu từ 
các học phần tiến sĩ, nhờ những kiến thức nền tảng này mà tôi mới có thể thực hiện 
được công việc nghiên cứu. Xin gửi lời cảm ơn đến quý Thầy/Cô trong hội đồng 
đánh giá chuyên đề của luận án, những ý kiến phản biện và góp ý đã giúp tôi rất 
nhiều trong việc chỉnh sửa và hoàn chỉnh luận án của mình. 
Xin gửi lời cảm ơn đến lãnh đạo trường đại học Sư phạm Kỹ thuật Tp. HCM, 
Khoa Cơ khí chế tạo máy, nhóm NCTĐ Kỹ thuật Cơ khí và Môi trường (REME 
LAB) đã hỗ trợ cho nghiên cứu sinh trong vệc nghiên cứu và thí nghiệm. Xin cám 
ơn Ban Giám Hiệu Trường Cao đẳng Công nghệ Quốc tế LILAMA2, các bạn bè, 
đồng nghiệp đã động viên, giúp đỡ và chia sẻ kinh nghiệm để tôi có thể thực hiện 
công việc nghiên cứu một cách thuận lợi nhất. 
Xin trân trọng cảm ơn công ty Giải pháp Kiểm định Việt Nam (VISCO 
NDT) đã hỗ trợ thiết bị NDT và tư vấn kỹ thuật cho công việc nghiên cứu và thực 
nghiệm. 
Cuối cùng xin chân thành cảm ơn gia đình và người thân luôn chia sẽ mọi 
khó khăn và là chỗ dựa vững chắc về vật chất lẫn tinh thần trong suốt thời gian thực 
hiện và hoàn thành luận án. 
Tp. Hồ Chí Minh, ngày 25 tháng 08 năm 2021 
 (Ký tên và ghi rõ họ tên) 
 Tô Thanh Tuần 
iv 
TÓM TẮT 
Hiện nay công nghệ đo kiểm bằng phương pháp siêu âm tổ hợp pha (PAUT) 
đã và đang được ứng dụng trong việc đo kiểm đánh giá độ mòn bồn chứa xăng dầu 
có độ tin cậy và hiệu quả cao. Tuy nhiên, công việc đo kiểm độ mòn bồn chứa hiện 
nay vẫn đang được tiến hành một cách thủ công mất nhiều thời gian, độ chính xác 
phụ thuộc vào trình độ tay nghề của kỹ thuật viên siêu âm. Ngoài ra, do phải phụ 
thuộc vào các dụng cụ gá đặt, giàn giáo nên chủ yếu chỉ triển khai đo kiển tra mòn ở 
một số khu vực của bồn nên không thể xây dựng được bản đồ mòn tổng thể để có 
được kết quả đành giá chính xác về chất lượng của bồn. Để rút ngắn thời gian đo 
kiểm đánh giá độ mòn và cho phép đánh giá tổng thể về độ mòn của bồn cũng như 
từng bước tự động hoá công việc đo kiểm, luận án “Nghiên cứu giải pháp đo kiểm 
tra đánh giá độ mòn bồn chứa xăng dầu dung tích lởn sử dụng robot mang đầu dò 
siêu âm” đã được thực hiện định hướng các nội dung chính sau: 
1. Đề xuất quy trình thực nghiệm đo độ mòn ứng dụng kỹ thuật kiểm tra siêu 
âm tổ hợp pha (PAUT) sử dụng robot mang đầu dò siêu âm PA được chứng nhận để 
đo độ mòn bồn chứa xăng dầu dung tích lớn. 
2. Đề xuất yêu cầu kỹ thuật cho robot mang đầu dò siêu âm PA thực hiện 
kiểm tra đánh giá độ mòn bồn chứa xăng dầu dung tích lớn. 
3. Xác định quảng đường di chuyển ngắn nhất của robot khi tiến hành mang 
đầu dò siêu âm PA kiểm tra mòn bồn chứa trên cơ sở thuật toán PSO. Kết quả tính 
toán được mô phỏng trên phần mềm MATLAB và được kiểm chứng bằng thực 
nghiệm trên mô hình bồn chứa. 
4. Đề xuất giải pháp “quét chồng biên ảnh”, trong đó ảnh thứ (i) có biên ảnh 
bên phải trùng với biên ảnh bên trái của ảnh thứ (i+1) với độ rộng 5 mm để có thể 
tìm ảnh, so khớp biên ảnh xác định các ảnh liền kề nhau nhằm phục vụ cho việc 
ghép ảnh xây dựng tạo lập bản đồ mòn. 
5. Trên cơ sở giải pháp “quét chồng biên ảnh” và phương án đường di chuyển 
ngắn nhất, đề xuất phương án điều khiển robot mang đầu dò siêu âm PA thực hiện 
kiểm tra mòn để thu thập ảnh mòn C-Scan của bồn chứa kiểm tra. Bên cạnh đó, việc 
chia lưới bồn chứa thành các khu vực 1000 x 1000 mm2 để triển khai công việc đo 
v 
kiểm tra siêu âm mòn có độ chính xác cao nhờ xác định, điều chỉnh chính xác tọa 
độ của robot cũng như thứ tự các lượt quét, kế hoạch hoá việc đo kiểm tra siêu âm 
mòn bồn chứa cũng được đề xuất. 
6. Xây dựng phần mềm ghép ảnh tạo dựng bản đồ mòn ứng dụng phần mềm 
MATLAB từ dữ liệu hình ảnh C-Scan thu thập được từ quá trình thực nghiệm đo 
mòn bằng phương pháp kiểm tra siêu âm PA. Phần mềm cũng cung cấp tính năng 
phân tích, xác định chính xác các thông số mòn như: vị trí, độ sâu và diện tích của 
khuyết tật mòn. 
Kết quả đo kiểm độ mòn sử dụng robot mang đầu dò siêu âm PA ứng dụng 
quảng đường ngắn nhất tìm được theo thuật toán PSO được thực nghiệm kiểm tra 
trên mô hình bồn chứa được chế tạo theo tiêu chuẩn API 650:2016 và phần mềm 
ghép ảnh mòn đã phát triển đã mang đến các kết quả sau: 
- Robot mang đầu dò PA thực hiện tốt việc di chuyển theo phương án quảng 
đường ngắn nhất tìm được trên cơ sở thuật toán PSO. 
- Các ảnh mòn thu thập được có chất lượng gần như tương đồng nhau đạt 
95% khoảng tin cậy của phép đo; 
- Giải pháp quét chồng biên ảnh giúp phần mềm ghép ảnh hoạt động hiệu 
quả, nhanh chóng xác định được các ảnh kề liền nhau và xây dựng được bản đồ 
mòn tổng thể; 
- Kết quả phân tích đánh giá độ mòn từ phần mềm phát triển trên cơ sở các 
kết quả 5 lần thực nghiệm (tương ứng 5 bản đồ mòn) gần như tương đồng nhau. Kết 
quả này cũng được so sánh cho thấy đồng nhất với kết quả được thực hiện thủ công 
do công ty Giải pháp Kiểm định Việt Nam (VISCO NDT) thực hiện. 
vi 
ABSTRACT 
Nowadays, Phased Array Ultrasound Testing (PAUT) has been applied in the 
measurement and testing the corrosion fuel tank with high reliability and efficiency. 
However, tank corrosion testing is still measured manually, takes a long time, the 
accuracy depends on the skill level of the ultrasonic technician. In addition, due to 
the dependence on the mounting tools, scaffolding, corrosion test is mainly 
deployed in some areas of the tank, so it is impossible to build a general corrosion 
map to get exactly results about the quality of the tank. In order to shorten the 
corrosion measurement and evaluation of time and allow an overall assessment of 
the corrosion of the tank, the thesis “Research on measurement and evaluation 
solution of corrosion for fuel tanks using robots carrying ultrasonic probes” was 
carried out with orientation of the following main contents: 
1. The experimental procedure corrosion measurement proposed and applied 
ultrasonic technique using a robot carrying ultrasonic phased-array probe to 
measure the corrosion on fuel tank. 
2. Proposing the technical requirements for the robot carrying the ultrasonic probe 
PA to perform the measurement and evaluation the corrosion of the fuel tank. 
3. Determining the shortest movement distance of the robot when carrying the 
ultrasonic probe PA to test corrosion tank based on PSO algorithm. Calculation 
results were simulated on MATLAB software and verified experimentally on 
tank model. 
4. Proposing the solution of scanning image overlap edge, the image ith has the 
right edge of the image to the left of the secondary image (i + 1)
th
 with the 
width of 5 mm to compare edge images; Determining adjacent images for 
image merging to create corrosion map. 
5. Basing on the solution of "scanning image overlap edge" and the shortest path 
planning, proposing the plan to control the robot with the ultrasonic probe PA 
to perform the corrosion test to collect the C-Scan corrosion image of the fuel 
tank. In addition, meshing the tank is divided into 1000 x 1000 mm
2
 areas to 
deploy high accuracy corrosion ultrasonic testing by accurately identifying and 
vii 
adjusting the robot's coordinates as well as the order of scan times, and a plan 
for an ultrasonic tank corrosion test is also proposed. 
6. Building image merging software to create corrosion maps applying MATLAB 
software from C-Scan image data collected from the PA ultrasonic testing 
method. The software also function analysis and accurate determination of 
corrosion parameters such as location, depth and area of corrosion defects.. 
The results of the corrosion test using the robot with the shortest path applied 
PA ultrasonic probe found according to the PSO algorithm are experimentally tested 
on a tank model manufactured according to API 650: 2016 and software The 
corrosion image merging software developed and carried the following results: 
- The robot with the PA probe performs well in the shortest path, which is found 
on the basis of the PSO algorithm. 
- The collected corrosion images have almost the same quality and 95% of the 
confidental interval of the measurement. 
- The image overlap edge scanning solution helps the image merging software 
to operate effectively, quickly identify adjacent images and build an overall 
corrosion map. 
- The results of analysis and evaluation of corrosion from software developed 
on the basis of 5 experimental results (corresponding to 5 corrosion maps) are 
almost similar. The result strongly agrees with the manual corrosion test performed 
by Vietnam In ... --------------------------')); 
end 
% pso main program-----------------------------------------------------
-end 
disp(sprintf('\n')); 
disp(sprintf('*********************************************************
')); 
disp(sprintf('Final Results-----------------------------')); 
[bestfun,bestrun]=min(fff) 
best_variables=rgbest(bestrun,:) 
disp(sprintf('*********************************************************
')); 
toc 
% PSO convergence characteristic 
plot(ffmin(1:ffite(bestrun),bestrun),'-k'); 
xlabel('Iteration'); 
ylabel('Fitness function value'); 
title('PSO convergence characteristic') 
%######################################################################
#### 
PHỤ LỤC 4: Code Matlab tạo lập bản đồ mòn 
1. Code đọc ảnh và so sánh biên ảnh 
function [X, map, alpha] = docanhgif(varargin) 
persistent cached_fmt; 
mlock 
if nargin > 0 
 [varargin{:}] = convertStringsToChars(varargin{:}); 
end 
[source, fmt_s, extraArgs, was_cached_fmt_used] = parse_inputs(cached_fmt, 
varargin{:}); 
was_format_specified = (nargin>=2) && ischar(varargin{2}); 
% Download remote file. isLegacyUrl is true if the file is on a HTTP/HTTPS 
% server 
try 
 [isLegacyUrl, fileNameObj] = getFileFromURL(source); 
catch ME 
 errorID = ME.identifier; 
 errorID = replace(errorID, ‘getFileFromURL’, ‘imread’); 
 throwAsCaller(Mexception(errorID, ME.message)); 
end 
% If fileNameObj is an object, extract the filename 
if ~ischar(fileNameObj) 
 filename = fileNameObj.LocalFileName; 
else 
 filename = fileNameObj; 
end 
if isLegacyUrl 
 % Clean up the downloaded file. 
 C = onCleanup(@()deleteDownload(filename)); 
end 
% Flag to indicate that the user file is on a remote location (for example: 
% HTTP, HTTPS, S3, Azure) 
isUrl = isLegacyUrl || ~ischar(fileNameObj); 
if isempty(fmt_s) 
 % The format was not specified explicitly. 
 % Get the absolute path of the file 
 fullname = get_full_filename(filename); 
 [~,~,ext] = fileparts(fullname); 
 if (~isempty(cached_fmt)) && ismember(ext(2:end), cached_fmt.ext) 
 % The format of this file is same as the last file opened with 
 % imread. Use cached_fmt to read the file 
 fmt_s = cached_fmt; 
 was_cached_fmt_used = true; 
 else 
 % Either cached_fmt is empty or the format of this file (as 
 % determined by the extension) is not the same as the cached 
 % format. Call get_format_info to determine the correct format 
 fmt_s = get_format_info(fullname); 
 end 
else 
 % The format was specified explicitly. 
 Try 
 % Try to obtain the absolute path of the file from the input 
 % filename. This will throw an error if filename does not exist or 
 % the user does not have permission to read the file 
 fullname = get_full_filename(filename); 
 catch 
 % If input filename fails, try all possible extensions of this file 
 % format to obtain the absolute path 
 for p = 1:length(fmt_s.ext) 
 try 
 fullname = get_full_filename([filename, ‘.’, 
fmt_s.ext{p}]); 
 % If we reach here, it means generating absolute Path 
 % succeeded. Break out of the loop. 
 Break; 
 catch ME 
 % If all possible extensions for the given format failed, 
 % throw the last exception 
 if p == length(fmt_s.ext) 
 rethrow(ME); 
 end 
 end 
 end 
 end 
end 
if fmt_s.alpha && (nargout == 3) 
 % Use the alpha channel. 
 [X, map, alpha] = call_format_specific_reader(); 
else 
 % Alpha channel is not requested or is not applicable. 
 Alpha = []; 
 [X, map] = call_format_specific_reader(); 
end 
cached_fmt = fmt_s; 
 function varargout = call_format_specific_reader() 
 try 
 [varargout{1:nargout}] = feval(fmt_s.read, fullname, 
extraArgs{:}); 
 catch ME 
 if (~was_cached_fmt_used) || was_format_specified 
 if isUrl 
 msgtext = replace(ME.message, fullname, source); 
 newME = Mexception(ME.identifier, msgtext); 
 else 
 newME = ME; 
 end 
 % The error was not caused by incorrect format 
 throwAsCaller(newME); 
 else 
 % The error could have been caused by using cached format, 
 % which was not correct for this file 
 fmt_s = get_format_info(fullname); 
 try 
 [varargout{1:nargout}] = feval(fmt_s.read, fullname, 
extraArgs{:}); 
 catch ME 
 if isUrl 
 msgtext = replace(ME.message, fullname, source); 
 newME = Mexception(ME.identifier, msgtext); 
 else 
 newME = ME; 
 end 
 throwAsCaller(newME); 
 end 
 end 
 end 
 end 
end 
%-------------------------------------------------------------------------- 
function [source, fmt_s, extraArgs, was_cached_fmt_used] = 
parse_inputs(cached_fmt, varargin) 
extraArgs = {}; 
fmt_s = struct([]); 
% Flag to track if cached format was used 
was_cached_fmt_used = false; 
% Parse arguments based on their number. 
Switch(nargin) 
case {0,1} 
 % Not allowed. 
 Error(message(‘MATLAB:imagesci:imread:inputParsing’)); 
case 2 
 % Filename only. 
 Source = varargin{1}; 
 if ~ischar(source) 
 error(message(‘MATLAB:imagesci:imread:badImageSourceDatatype’)); 
 end 
otherwise 
 % Filename and format or other arguments. 
 Source = varargin{1}; 
 % Check whether second argument is a format. 
 If ischar(varargin{2}) 
 if (~isempty(cached_fmt)) && ismember(varargin{2}, cached_fmt.ext) 
 fmt_s = cached_fmt; 
 was_cached_fmt_used = true; 
 else 
 fmt_s = imformats(varargin{2}); 
 end 
 end 
 if ~isempty(fmt_s) 
 % The argument matches a format. 
 extraArgs = varargin(3:end); 
 % Verify that a read function exists 
 if (isempty(fmt_s.read)) 
error(message(‘MATLAB:imagesci:imread:readFunctionRegistration’, fmt_s.ext{ 
1 })); 
 end 
 else 
 % The argument begins the format-specific parameters. 
 extraArgs = varargin(2:end); 
 end 
 end 
end 
%-------------------------------------------------------------------------- 
function fmt_s = get_format_info(fullname) 
 [format, fmt_s] = imftype(fullname); 
 if (isempty(format)) 
 error(message(‘MATLAB:imagesci:imread:fileFormat’)); 
end 
 % Verify that a read function exists 
if (isempty(fmt_s.read)) 
 error(message(‘MATLAB:imagesci:imread:readFunctionRegistration’, 
fmt_s.ext{ 1 })); 
end 
 end 
 %------------------------------------------------------------------------- 
function filename = get_full_filename(filename) 
[fid, errmsg] = fopen(filename, ‘r’); 
if (fid == -1) 
 if ~isempty(dir(filename)) 
 % String ‘Too many open files’ is from strerror. 
 % So, no need for a message catalog. 
 If contains(errmsg, ‘Too many open files’) 
 error(message(‘MATLAB:imagesci:imread:tooManyOpenFiles’, 
filename)); 
 else 
 error(message(‘MATLAB:imagesci:imread:fileReadPermission’, 
filename)); 
 end 
 else 
 error(message(‘MATLAB:imagesci:imread:fileDoesNotExist’, 
filename)); 
 end 
 else 
 % File exists. Get full filename. 
 Filename = fopen(fid); 
 fclose(fid); 
end 
 end 
2. Code Giao diện Phần mềm ghép ảnh 
function varargout = giaodien(varargin) 
% GIAODIEN MATLAB code for giaodien.fig 
% GIAODIEN, by itself, creates a new GIAODIEN or raises the existing 
% singleton*. 
% 
% H = GIAODIEN returns the handle to a new GIAODIEN or the handle to 
% the existing singleton*. 
% 
% GIAODIEN('CALLBACK',hObject,eventData,handles,...) calls the local 
% function named CALLBACK in GIAODIEN.M with the given input 
arguments. 
% 
% GIAODIEN('Property','Value',...) creates a new GIAODIEN or raises 
the 
% existing singleton*. Starting from the left, property value pairs 
are 
% applied to the GUI before giaodien_OpeningFcn gets called. An 
% unrecognized property name or invalid value makes property 
application 
% stop. All inputs are passed to giaodien_OpeningFcn via varargin. 
% 
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one 
% instance to run (singleton)". 
% 
% See also: GUIDE, GUIDATA, GUIHANDLES 
% Edit the above text to modify the response to help giaodien 
% Last Modified by GUIDE v2.5 06-Jul-2020 00:41:32 
% Begin initialization code - DO NOT EDIT 
gui_Singleton = 1; 
gui_State = struct('gui_Name', mfilename, ... 
 'gui_Singleton', gui_Singleton, ... 
 'gui_OpeningFcn', @giaodien_OpeningFcn, ... 
 'gui_OutputFcn', @giaodien_OutputFcn, ... 
 'gui_LayoutFcn', [] , ... 
 'gui_Callback', []); 
if nargin && ischar(varargin{1}) 
 gui_State.gui_Callback = str2func(varargin{1}); 
end 
if nargout 
 [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); 
else 
 gui_mainfcn(gui_State, varargin{:}); 
end 
% End initialization code - DO NOT EDIT 
% --- Executes just before giaodien is made visible. 
function giaodien_OpeningFcn(hObject, eventdata, handles, varargin) 
% This function has no output args, see OutputFcn. 
% hObject handle to figure 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
% varargin command line arguments to giaodien (see VARARGIN) 
% Choose default command line output for giaodien 
handles.output = hObject; 
% Update handles structure 
guidata(hObject, handles); 
% UIWAIT makes giaodien wait for user response (see UIRESUME) 
% uiwait(handles.figure1); 
% --- Outputs from this function are returned to the command line. 
function varargout = giaodien_OutputFcn(hObject, eventdata, handles) 
% varargout cell array for returning output args (see VARARGOUT); 
% hObject handle to figure 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
% Get default command line output from handles structure 
varargout{1} = handles.output; 
% --- Executes on button press in pushbutton1. 
function pushbutton1_Callback(hObject, eventdata, handles) 
% hObject handle to pushbutton1 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
close 
% --- Executes on button press in pushbutton2. 
function pushbutton2_Callback(hObject, eventdata, handles) 
% hObject handle to pushbutton2 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
% global host_image ; 
duongdan = uigetdir; 
cd(duongdan); 
[I0, cmap] = imread([num2str(1) '.gif'],'frames','all'); 
RGB_0 = ind2rgb(I0,cmap); 
anhghep = vertcat(RGB_0,zeros(1,19,3)); 
Anh = anhghep; 
axes(handles.axes1) 
cla(handles.axes1,'reset') 
for i =2:30 
[I, cmap] = imread([num2str(i) '.gif'],'frames','all'); 
% image(I); 
% colormap(cmap); 
RGB = ind2rgb(I,cmap); 
imshow(RGB); 
% [m,n,p] = size(I); 
pause(0.01) 
anhghep_moi = horzcat(Anh,RGB); 
Anh= anhghep_moi; 
% clf 
cla(handles.axes1,'reset') 
end 
imshow(anhghep_moi); 
imwrite(anhghep_moi,'Anhghep.jpg') 
axes(handles.axes2) 
imshow(rgb2gray(anhghep_moi)); 
% imwrite(anhghep_moi,'Anhghep.jpg') 
% filename = uigetfile({'*.gif;*.png'},'Chon Anh Goc'); 
% host_image = imread(filename); 
% host_image = rgb2gray(host_image); 

File đính kèm:

  • pdfluan_an_nghien_cuu_giai_phap_do_kiem_tra_danh_gia_do_mon_bon.pdf
  • pdfTom tat luan an tieng Anh TO TUAN 30_08_2021.pdf
  • pdfTom tat luan an tieng Viet TO TUAN 30_08_2021.pdf
  • docxTrang thong tin LA tiếng Anh TO TUAN 30_08_2021.docx
  • docxTrang thong tin LA tiếng Việt TO TUAN 30_08_2021.docx