How to distinguish ferrite and bainite with KAM #4
-
hello @AzdiarGazder |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
Hi @Mikewangkang, There are various methods used to classify and segment ferrite constituents. I am providing 2 examples as follows:
You can apply my method by going through the various steps listed in the paper. I'd like to highlight a few important points here: (b) A criterion like KAM is a pixel-based criterion. When segmenting constituents, it is advisable to use grain-based criteria like GAM and GOS. This enables cleaner and easier segmentation. (c) Depending on the thermo-mechanical history of each individual microstructure (and consequently, the map data), the thresholds should be adjusted/changed to accurately (and consistently) segment between constituents. Using 1 threshold value across all microstructures and maps is again simply not correct. Lastly, if you'd like me to help you with your script, please upload it so that I can have a look. Hope this helps. Warm regards, |
Beta Was this translation helpful? Give feedback.
-
Dear Professor Azdi, |
Beta Was this translation helpful? Give feedback.
-
Dear Professor Azdi, %% Import Script for EBSD Data
%
% This script was automatically created by the import wizard. You should
% run the whoole script or parts of it in order to import your data. There
% is no problem in making any changes to this script.
%% Specify Crystal and Specimen Symmetries
% crystal symmetry
CS = {...
'notIndexed',...
crystalSymmetry('m-3m', [2.9 2.9 2.9], 'mineral', 'Iron bcc (old)', 'color', [0.53 0.81 0.98]),...
crystalSymmetry('m-3m', [3.7 3.7 3.7], 'mineral', 'Iron fcc', 'color', [0.56 0.74 0.56])};
% plotting convention
setMTEXpref('xAxisDirection','east');
setMTEXpref('zAxisDirection','intoPlane');
%% Specify File Names
% path to files
pname = 'D:\桌面\晶体塑性模拟\B钢\B钢EBSD\B750';
% which files to be imported
fname = [pname '\B750-1.crc'];
%% Import the Data
% create an EBSD variable containing the data
ebsd = EBSD.load(fname,CS,'interface','crc',...
'convertEuler2SpatialReferenceFrame');
% The second parameter that is involved in grain reconstruction is the threshold misorientation angle indicating a grain boundary.
grains = calcGrains(ebsd,'angle',5*degree)
[grains,ebsd.grainId] = calcGrains(ebsd('indexed'));
% remove one-three pixel grains
ebsd(grains(grains.grainSize <= 3)) = [];
[grains,ebsd.grainId] = calcGrains(ebsd('indexed'));
grains = smooth(grains,5);
plot(ebsd('indexed'),ebsd('indexed').orientations)
hold on
plot(grains.boundary,'lineWidth',1.5)
hold off
ebsd = ebsd.gridify;
kam = ebsd.KAM / degree;
% lets plot it
plot(ebsd,kam,'micronbar','off')
caxis([0,15])
mtexColorbar
mtexColorMap LaboTeX
hold on
plot(grains.boundary,'lineWidth',1.5)
hold off
% chose a denoising filter
F = halfQuadraticFilter;
F.alpha = 0.5;
% denoise the orientation map
ebsdS = smooth(ebsd,F,'fill',grains);
% plot the first order KAM
plot(ebsdS,ebsdS.KAM('threshold',2.5*degree) ./ degree,'micronbar','off')
caxis([0,5])
mtexColorbar
mtexColorMap LaboTeX
hold on
plot(grains.boundary,'lineWidth',1.5)
hold off Best wishes, |
Beta Was this translation helpful? Give feedback.
Hi @Mikewangkang,
There are various methods used to classify and segment ferrite constituents. I am providing 2 examples as follows:
You can apply my method by going through the various steps listed in the paper.
Alternatively, I have modified Sachin's method to work within MTEX.
The demonstration script can be found here.
I'd like to highlight a few important points here:
(a) Based on the information you've provided, you seem to suggest that 1 criterion (like KAM) is enough to segment between constituents. However, modern segmentation methods, like the two I've shown above…