I have an aerial image, like this
I want to detect the outline of the ship without shadow. How can I do it? I tried threshold in both graylevel, RGB and HSV. It doesn't work perfectly.
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It only takes a minute to sign up.Sign up to join this community
I have used Laplacian of a gaussian filtered image with sigma value of 3.
I have thresholded the LoG image with a high-pass filter.
I have used gray closing morphologic operator.
I have filtered the blobs according to their area.
There are several more ways to do it depending on the images, conditions(sea), illumination, ships etc. For this image, non-color methods are preferable as shadows are not always predictable.
I converted it to LAB space, took only the A channel, sharpened the contrast, and used a sobel edge detection. The outline is kind of rough, but pretty much only the ship shows up. If you are trying to find ships, then that seems like a good direction to start from.
Or how does this suit you: This is the first image aftr blurring, sharpening the contrast and doing an unsharp mask.
I would suggest to go for a larger scale approach with pretrained object detection models building on top of convolutional neural networks.
If you do not want to train your own, you will find on our platform (www.picterra.ch) a ship detector in the detector library that you could simply apply on your image.
Hope this helps, Best