Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=8), | public, | parameter | :: | PI | = | 4*atan(1.0_8) |
apply filter Arguments
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | img(:,:,:) |
image array. has pixel values. |
||
integer, | intent(in) | :: | filter(:,:) |
filter array. |
||
integer, | intent(in) | :: | maximum_value |
max pixel value. |
||
logical, | intent(in), | optional | :: | fill |
Whether does fill edge. |
filtered image. same size as the argument img.
laplacian filtering (8 neighborhood)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | img(:,:,:) |
Image array. has pixel values. |
||
integer, | intent(in) | :: | maximum_value |
max value of a pix. default to 255. |
filtered image array.
gaussian filtering (24 neighborhood)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | img(:,:,:) |
Image array has pixel values. |
||
integer, | intent(in) | :: | maximum_value |
Max value of a pix. default to 255. |
||
integer, | intent(in) | :: | n_times |
Number of time apply filter. |
Filtered image array.
sobel filter (sqrt version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | img(:,:,:) |
Image array has pixel values. |
||
integer, | intent(in) | :: | maximum_value |
Max value of a pix. default to 255 |
||
logical, | intent(in), | optional | :: | is_canny |
Whether is used in canny adge detection |
Filtered image array
apply canny edge detection
the method is:
1. apply gaussian filtering
2. apply sobel filtering
3. non-maximum supperssion
4. edge tracking by hysteresis
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | img(:,:,:) |
Image array has pixel values. |
||
integer, | intent(in) | :: | maximum_value |
The max value of pixel. |
Edge array
apply bilateral filter
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | img(:,:,:) |
Image array has pixel values. |
||
real, | intent(in) | :: | sigma |
use in gaussian distribution. |
||
integer, | intent(in) | :: | maximum_value |
The max value of pixel. |
||
integer, | intent(in) | :: | n_times |
Number of time to apply filter. |
The image applied bilateral filter.
apply emboss filter
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | img(:,:,:) |
Image array has pixel value. |
||
integer, | intent(in) | :: | maximum_value |
The max value of pixel. |
The image applied emboss filter.
fill edges with the same color as closest pix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:, :, :) | :: | img |
image array. has pixel values. |
|
integer, | intent(in) | :: | n_around |
The pix of fill edge. |
Perform non-maximum_supperssin
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | edge_magnitudes(:,:,:) |
Edge magnitude array. |
||
real, | intent(inout) | :: | edge_ways(:,:,:) |
Edge directions array |
Edge tracking by hysteresis
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | img(:,:,:) |
Image array has pixel value. |
||
integer, | intent(in) | :: | maximum_value |
The max value of pixel. |