Giter Site home page Giter Site logo

wkjarosz / hdrview Goto Github PK

View Code? Open in Web Editor NEW
285.0 285.0 11.0 44.13 MB

A simple research-oriented image viewer with an emphasis on examining and comparing high-dynamic range (HDR) images, and including minimalistic editing and tonemapping capabilities.

License: Other

CMake 2.97% C 33.66% Batchfile 0.05% C++ 62.69% Shell 0.05% Metal 0.57%
comparison-tool exr hdr hdr-images high-dynamic-range image image-processing macos openexr pfm

hdrview's People

Contributors

1ace avatar est77 avatar fjavifabre avatar pgrit avatar rexwest avatar syoyo avatar wkjarosz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hdrview's Issues

Rectangular selection support

Adding rectangular selection support would be pretty easy, and would be a first step towards some nice additional features:

  • report pixel statistics (mean, median, min, max) for a region
  • running a filter/image editing operation only on the selection
  • cropping to selection
  • copy/paste between images

Support arbitrary number of channels

Would likely require:

  1. a major restructuring of the HDRImage class to store channels as continuous 2D arrays (instead of each pixel containing fixed RGBA values). Upside: image processing and storage clean and simple; downside: would need to copy/reinterleave pixels when uploading to GPU.
  2. HDRImage stays as is, and arbitrary channels get grouped into multiple HDRImages (and XPUimages) each stored as (potentially wasteful) 4 channel images. e.g. stereo depth could use two channels of an HDRImage, hyperspectral images would need to be split into groups of 3 or 4 channels.

Fix reference image UVs and alpha

Images with alpha channels don't view properly in ImageView before a refererence image has been selected. Also, reference images are displayed stretched (likely an issue with UVs).

Upload subregions of GPU texture

If we want to later add paint/airbrushes, then we'll need to be able to upload 2D portions of the image to the GPU instead of the entire image. Will require modifying nanogui's texture interface.

In openGL this would use glTexSubImage2D. In Metal probably replaceRegion.

Crash/race condition between histogram and image filters

The lazy histogram computation accesses the HDRImage in an unguarded way, so if an image edit/filtering operation is started this leads to a race condition and a crash.

Suggested fix: histogram computation should take a progress object that can be canceled. Any new image edits/filters should first cancel and wait before starting to edit.

Can also use this to fix the issue that closing an image currently requires waiting for the histogram to finish being computed.

Improved tool overlays

Clonebrush tool could show not just the ellipse of the brush, but the source raster texture overlaid on the image. Similar for paint brush.

Port ImageView shaders to support Metal

ImageView class currently uses glsl shaders. These should be split into separate files and different shaders should be used to support HDRView being compile for Metal support.

logging verbosity

Hello,

First, I am a big fan of hdrview. I think it's a really good tool to compare exr/hdr images.

At latest master (3a9689c), the logging seems to become overly verbose if I hold the mouse button down and drag the image around (screenshot):
Capture
I am not sure exactly when it started to happen, but should be after the project migrated from bitbucket.
Is it possible to add a flag to adjust the verbosity, or simply remove this kind of spammy logs?

Thanks!

Enhance image list view

Some nice features to add:

  • support both left and right alignment of filenames
  • sort files
  • support drag-drop to reorder images (possibly based off a patch to tev)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.