@@ -104,6 +104,7 @@ class MainActivity : AppCompatActivity() {
104104 binding.spinnerMerge -> {
105105 binding.panoramaOptions.isVisible = Settings .MERGE_PANORAMA == position
106106 binding.longexposureOptions.isVisible = Settings .MERGE_LONG_EXPOSURE == position
107+ binding.hdrOptions.isVisible = Settings .MERGE_HDR == position
107108 }
108109 }
109110
@@ -565,16 +566,17 @@ class MainActivity : AppCompatActivity() {
565566 private fun mergeHdr (prefix : String ): Pair <List <Mat >, String> {
566567 log(" HDR: Start" )
567568
568- val alignedImages = alignImages(prefix).first
569+ val alignImages = ! binding.hdrAlreadyAligned.isChecked
570+ val inputImages = if (alignImages) alignImages(prefix).first else ( cache[prefix] ? : listOf () )
569571 val output = Mat ()
570572
571- if (alignedImages .size >= 2 ) {
573+ if (inputImages .size >= 2 ) {
572574 val hdrMat = Mat ()
573575 val mergeMertens = createMergeMertens()
574- mergeMertens.process(alignedImages , hdrMat)
576+ mergeMertens.process(inputImages , hdrMat)
575577
576578 if (! hdrMat.empty()) {
577- hdrMat.convertTo(output, alignedImages [0 ].type(), 255.0 )
579+ hdrMat.convertTo(output, inputImages [0 ].type(), 255.0 )
578580 }
579581 }
580582
@@ -731,6 +733,7 @@ class MainActivity : AppCompatActivity() {
731733
732734 binding.panoramaInpaint.setOnCheckedChangeListener { _, _ -> mergePhotosSmall() }
733735 binding.longexposureAlreadyAligned.setOnCheckedChangeListener { _, _ -> mergePhotosSmall() }
736+ binding.hdrAlreadyAligned.setOnCheckedChangeListener { _, _ -> mergePhotosSmall() }
734737
735738 if (intent?.action == Intent .ACTION_SEND_MULTIPLE && intent.type?.startsWith(" image/" ) == true ) {
736739 intent.getParcelableArrayListExtra<Parcelable >(Intent .EXTRA_STREAM )?.let { list ->
0 commit comments