Long Term Goals

  • Establish a data structure for the quantification of Poly-3-hexylthiophene (P3HT) thin film morphology

Proposed Microstructure

Information from AFM Image That Matters

  1. Identifying fibers
  2. Fiber orientation
  3. Degree of crystallinity

AFM

Thresholding to 1. Identify fibers

The thresholding post discusses our algorithm for finding the perfect thresholding value to isolate individual fibers. The following image shows a brief example of our work. thresholding algorithm vizulaized

The result of such thresholding will be used to identify each fiber as a connected component. This can be used to find individual fiber orientation.

Ellipse fitting to find 2. Fiber orientation

regionprops was used to fit an ellipse to each connected component obtained from the previous thresholding to determine the orientation of that fiber.

The following example is a proof of concept of finding orientations using regionprops. Of the AFM image(left) , we selected to only 5 components(center). The orientations of the components were accurately calculated and are displayed on the right. Ex. of orientation finding

The orientation detection along with thresholding is displayed below. Each pixel in the image identified as a fiber can be assigned one of 8 orientations.

Full process

Issues

Overlapping fiber, especially those in completely different directions will contaminate the orientation calculation. The image below shows a case where the ellipse fit to the connected component in green will chose the green vector to calculate the orientation of the fiber. This orientation is incorrect for both fibers.

incorrect orientation

Possible solution:

Calculate the eccentricity of the ellipse fit the connected component and if the ellipse cannot possible belong to a single fiber, remove from orientation calculation. Use some other method to perform some sort of local orientation calculation.

Peak fitting to find 3. Degree of crystallinity

Expeimentaing with SciPy in Python. (Would prefer to use python for smooth work flow SwiftStack)