Skip to content

Commit

Permalink
add support for dcmdjp2k
Browse files Browse the repository at this point in the history
  • Loading branch information
malaterre committed Oct 31, 2023
1 parent b578ec5 commit d6d3a42
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 4 deletions.
2 changes: 1 addition & 1 deletion CMake/FindDCMTK.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ find_package_handle_standard_args(DCMTK DEFAULT_MSG
# Compatibility: This variable is deprecated
set(DCMTK_INCLUDE_DIR ${DCMTK_INCLUDE_DIRS})

foreach(executable dcmdump dcmdjpeg dcmdrle dcmdjpls storescu echoscu movescu findscu dcmqrscp)
foreach(executable dcmdump dcmdjpeg dcmdrle dcmdjpls dcmdjp2k storescu echoscu movescu findscu dcmqrscp)
string(TOUPPER ${executable} EXECUTABLE)
find_program(DCMTK_${EXECUTABLE}_EXECUTABLE ${executable} ${DCMTK_DIR}/bin)
mark_as_advanced(DCMTK_${EXECUTABLE}_EXECUTABLE)
Expand Down
24 changes: 24 additions & 0 deletions Testing/Source/MediaStorageAndFileFormat/Cxx/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,30 @@ foreach(filename ${gdcm_data_filenames_glob})
endif()
endforeach()

file(MAKE_DIRECTORY "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax2/dcmdjp2k/")

foreach(filename ${gdcm_data_filenames_glob})
get_filename_component(filename_name ${filename} NAME)
string(REGEX MATCH ${filename_name} bad_dicom ${black_list_reader})
if(NOT bad_dicom)
if(GDCM_TEST_DCMTK)
if(DCMTK_DCMDJP2K_EXECUTABLE)
add_test(NAME "DCMDJP2K-${filename_name}" COMMAND ${DCMTK_DCMDJP2K_EXECUTABLE}
"${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax2/${filename_name}"
"${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax2/dcmdjp2k/${filename_name}")
# Special handling of the DICOMDIR files:
string(REGEX MATCH ${filename_name} is_dicomdir ${gdcm_data_dicomdir_filenames_glob})
if(is_dicomdir)
#message("IS DICOMDIR ${filename_name}")
set_tests_properties("DCMDJP2K-${filename_name}" PROPERTIES WILL_FAIL TRUE)
endif()
#
endif()
endif()
endif()
endforeach()


file(MAKE_DIRECTORY "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax3/dcmdrle/")

foreach(filename ${gdcm_data_filenames_glob})
Expand Down
25 changes: 22 additions & 3 deletions Testing/Source/MediaStorageAndFileFormat/Python/TestDCMTKMD5.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def TestDCMTKMD5( filename, verbose = False ):
jpegre = re.compile('^.*JPEGLossless.*$')
jpegre2 = re.compile('^.*JPEGExtended.*$')
jpegre3 = re.compile('^.*JPEGBaseline.*$')
j2kre = re.compile('^.*JPEG2000.*$')
jp2kre = re.compile('^.*JPEG2000.*$')
jplsre = re.compile('^.*JPEGLS.*$')
rlere = re.compile('^.*RLELossless.*$')
lexre = re.compile('^.*LittleEndianExplicit.*$')
Expand Down Expand Up @@ -144,8 +144,27 @@ def TestDCMTKMD5( filename, verbose = False ):
retval = 1
#print outputfilename
return retval
elif( j2kre.match( ret ) ):
return 0
elif( jp2kre.match( ret ) ):
#print "jpegls: ",filename
dcmdjp2k_exec = "dcmdjp2k " + filename + " " + outputfilename
ret = os.system( dcmdjp2k_exec )
if ret:
print("failed with: ", dcmdjp2k_exec)
return 1

gdcmraw_args = ' -i ' + outputfilename + ' -o ' + outputfilename + ".raw"
gdcmraw += gdcmraw_args
#print gdcmraw
ret = os.system( gdcmraw )
md5 = gdcm.Testing.ComputeFileMD5( outputfilename + ".raw" )
ref = gdcm.Testing.GetMD5FromFile(filename)
#print md5
retval = 0
if ref != md5:
print("md5 are different: %s should be: %s for file %s"%(md5,ref,filename))
retval = 1
#print outputfilename
return retval
elif( lexre.match( ret ) or leire.match(ret) or beire.match(ret) ):
#print "rle: ",filename
#dcmdrle_exec = "dcmdrle " + filename + " " + outputfilename
Expand Down

0 comments on commit d6d3a42

Please sign in to comment.