Body lengths of harvested fish are key indices for marine resource management. Some fisheries management organisations require fishing vessels to report the lengths of harvested fish. Conventionally, body lengths of fish are measured manually using rulers or tape measures. Such methods are, however, time consuming, labour intensive, and subjective. This study proposes an automated method to determine the snout-to-fork length of a fish in complex images. In this approach, images of fish bodies and colour plates with a known dimension were acquired. A convolutional neural network (CNN) classifier was then developed to detect the regions of fish head, tail fork, and colour plate in the images. Snout and fork points of the fish were next determined in the fish head and tail fork regions, respectively, using image processing. Fish body length was subsequently estimated as the distance between the snout and fork points using the pixel-to-distance ratio obtained from the colour plate. The developed CNN classifier reached an accuracy of 98.78% in detecting the regions of fish head, fish fork, and colour plate. The proposed approach reached a mean absolute error and a mean absolute relative error of 5.36 cm and 4.26%, respectively, in estimating the body length of fish.