RosettaCodeData/Task/Bitmap-Histogram/Fortran/bitmap-histogram-2.f

43 lines
847 B
Fortran

program BasicImageTests
use RCImageBasic
use RCImageIO
use RCImageProcess
implicit none
type(rgbimage) :: animage
type(scimage) :: gray
integer, dimension(0:255) :: histo
integer :: ml
open(unit=10, file='lenna.ppm', action='read', status='old')
call read_ppm(10, animage)
close(10)
call init_img(gray)
! or
! call alloc_img(gray, animage%width, animage%height)
gray = animage
call get_histogram(gray, histo)
ml = histogram_median(histo)
where ( gray%channel >= ml )
animage%red = 255
animage%green = 255
animage%blue = 255
elsewhere
animage%red = 0
animage%green = 0
animage%blue = 0
end where
open(unit=10, file='elaborated.ppm', action='write')
call output_ppm(10, animage)
close(10)
call free_img(animage)
call free_img(gray)
end program BasicImageTests