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.
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
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:
luan_an_nghien_cuu_giai_phap_do_kiem_tra_danh_gia_do_mon_bon.pdf
Tom tat luan an tieng Anh TO TUAN 30_08_2021.pdf
Tom tat luan an tieng Viet TO TUAN 30_08_2021.pdf
Trang thong tin LA tiếng Anh TO TUAN 30_08_2021.docx
Trang thong tin LA tiếng Việt TO TUAN 30_08_2021.docx

