How to measure crack width
I noticed that when I reduced the minimum acceptable area the crack width decreased although the appearance of blobs in this situation, while when i increased minimum acceptable area and the blobs removed and the width increased
for example:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 10;
% Read in image and convert to gray scale.
rgbImage = imread(‘7004-46.jpg’);
I = rgb2gray(rgbImage);
subplot(2,2,1);
imshow(I);
title(‘7004-46’);
% Take histogram.
subplot(2,2,2);
histogram(I);
grid on; %to make grid line
title(‘histogram Gray image’);
% Binarize image.
threshold = 145;
xline(threshold, ‘Color’, ‘r’, ‘LineWidth’,2)
mask=I < threshold;
mask = imfill(mask, ‘holes’);
% Filter image.
se = strel(‘line’,1, 0);
filteredImage = imclose(mask, se);
subplot(2, 2, 3);
imshow(filteredImage);
title(‘closed Image’);
%%% Measure the areas to determin minAcceptableArea show the histogram of
%%% area
% props = regionprops(filteredImage, ‘Area’);
% allAreas = sort([props.Area], ‘descend’);
% histogram(allAreas)
%%Look at the histogram. What area do you think is the minimum size to be a valid crack?
minAcceptableArea =20;
mask = bwareafilt(filteredImage, [minAcceptableArea, inf]);
subplot(2, 2, 4);
imshow(mask);
%
% % Measure size of crack.
props = regionprops(mask, ‘Area’);
allAreas = [props.Area];
out=bwferet(mask)
% Measure the areas to know the area not to be considered
% props = regionprops(mask, ‘Area’);
% allAreas = sort([props.Area], ‘descend’)
% Get width = area / maximum length
averageWidths = sort(allAreas ./ out.MaxDiameter, ‘descend’);
message = sprintf(‘The average width = %.2f pixels.’, averageWidths(1));
fprintf(‘%sn’, message);
caption = sprintf(‘Binary Image of Cracks larger than %dnAverage width of largest = %.2f pixels’, minAcceptableArea, averageWidths(1));
title(caption, ‘FontSize’, fontSize, ‘Interpreter’, ‘None’);
uiwait(helpdlg(message));I noticed that when I reduced the minimum acceptable area the crack width decreased although the appearance of blobs in this situation, while when i increased minimum acceptable area and the blobs removed and the width increased
for example:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 10;
% Read in image and convert to gray scale.
rgbImage = imread(‘7004-46.jpg’);
I = rgb2gray(rgbImage);
subplot(2,2,1);
imshow(I);
title(‘7004-46’);
% Take histogram.
subplot(2,2,2);
histogram(I);
grid on; %to make grid line
title(‘histogram Gray image’);
% Binarize image.
threshold = 145;
xline(threshold, ‘Color’, ‘r’, ‘LineWidth’,2)
mask=I < threshold;
mask = imfill(mask, ‘holes’);
% Filter image.
se = strel(‘line’,1, 0);
filteredImage = imclose(mask, se);
subplot(2, 2, 3);
imshow(filteredImage);
title(‘closed Image’);
%%% Measure the areas to determin minAcceptableArea show the histogram of
%%% area
% props = regionprops(filteredImage, ‘Area’);
% allAreas = sort([props.Area], ‘descend’);
% histogram(allAreas)
%%Look at the histogram. What area do you think is the minimum size to be a valid crack?
minAcceptableArea =20;
mask = bwareafilt(filteredImage, [minAcceptableArea, inf]);
subplot(2, 2, 4);
imshow(mask);
%
% % Measure size of crack.
props = regionprops(mask, ‘Area’);
allAreas = [props.Area];
out=bwferet(mask)
% Measure the areas to know the area not to be considered
% props = regionprops(mask, ‘Area’);
% allAreas = sort([props.Area], ‘descend’)
% Get width = area / maximum length
averageWidths = sort(allAreas ./ out.MaxDiameter, ‘descend’);
message = sprintf(‘The average width = %.2f pixels.’, averageWidths(1));
fprintf(‘%sn’, message);
caption = sprintf(‘Binary Image of Cracks larger than %dnAverage width of largest = %.2f pixels’, minAcceptableArea, averageWidths(1));
title(caption, ‘FontSize’, fontSize, ‘Interpreter’, ‘None’);
uiwait(helpdlg(message)); I noticed that when I reduced the minimum acceptable area the crack width decreased although the appearance of blobs in this situation, while when i increased minimum acceptable area and the blobs removed and the width increased
for example:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 10;
% Read in image and convert to gray scale.
rgbImage = imread(‘7004-46.jpg’);
I = rgb2gray(rgbImage);
subplot(2,2,1);
imshow(I);
title(‘7004-46’);
% Take histogram.
subplot(2,2,2);
histogram(I);
grid on; %to make grid line
title(‘histogram Gray image’);
% Binarize image.
threshold = 145;
xline(threshold, ‘Color’, ‘r’, ‘LineWidth’,2)
mask=I < threshold;
mask = imfill(mask, ‘holes’);
% Filter image.
se = strel(‘line’,1, 0);
filteredImage = imclose(mask, se);
subplot(2, 2, 3);
imshow(filteredImage);
title(‘closed Image’);
%%% Measure the areas to determin minAcceptableArea show the histogram of
%%% area
% props = regionprops(filteredImage, ‘Area’);
% allAreas = sort([props.Area], ‘descend’);
% histogram(allAreas)
%%Look at the histogram. What area do you think is the minimum size to be a valid crack?
minAcceptableArea =20;
mask = bwareafilt(filteredImage, [minAcceptableArea, inf]);
subplot(2, 2, 4);
imshow(mask);
%
% % Measure size of crack.
props = regionprops(mask, ‘Area’);
allAreas = [props.Area];
out=bwferet(mask)
% Measure the areas to know the area not to be considered
% props = regionprops(mask, ‘Area’);
% allAreas = sort([props.Area], ‘descend’)
% Get width = area / maximum length
averageWidths = sort(allAreas ./ out.MaxDiameter, ‘descend’);
message = sprintf(‘The average width = %.2f pixels.’, averageWidths(1));
fprintf(‘%sn’, message);
caption = sprintf(‘Binary Image of Cracks larger than %dnAverage width of largest = %.2f pixels’, minAcceptableArea, averageWidths(1));
title(caption, ‘FontSize’, fontSize, ‘Interpreter’, ‘None’);
uiwait(helpdlg(message)); image analysis, image processing, image segmentation, crack, concrete, width, measures MATLAB Answers — New Questions