All Projects → PatWie → saccade

PatWie / saccade

Licence: GPL-3.0 license
A sophisticated scientific image viewer for Linux with OpenGL support and synchronized viewports

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects
Dockerfile
14818 projects
Cuda
1817 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to saccade

Viewer
⚠️ [Deprecated] No longer maintained, please use https://github.com/fengyuanchen/jquery-viewer
Stars: ✭ 985 (+2492.11%)
Mutual labels:  viewer, image-viewer
Wiv
Window image viewer [DEPRECATED]
Stars: ✭ 196 (+415.79%)
Mutual labels:  viewer, image-viewer
Rdimageviewercontroller
Simple viewer not only image but also custom view.
Stars: ✭ 49 (+28.95%)
Mutual labels:  viewer, image-viewer
Picview
Fast Picture Viewer with compact UI, that can be hidden. Features image effects, galleries, image info and more. The app can automatically adjusts itself to your screen.
Stars: ✭ 259 (+581.58%)
Mutual labels:  viewer, image-viewer
oculante
A minimalistic crossplatform image viewer written in rust
Stars: ✭ 169 (+344.74%)
Mutual labels:  viewer, image-viewer
Viewerjs
JavaScript image viewer.
Stars: ✭ 6,270 (+16400%)
Mutual labels:  viewer, image-viewer
Dspdfviewer
Dual-Screen PDF Viewer for latex-beamer
Stars: ✭ 184 (+384.21%)
Mutual labels:  viewer, qt5
Mulimgviewer
MulimgViewer is a multi-image viewer that can open multiple images in one interface, which is convenient for image comparison and image stitching.
Stars: ✭ 57 (+50%)
Mutual labels:  viewer, image-viewer
Vudit
A file viewer for Android
Stars: ✭ 40 (+5.26%)
Mutual labels:  viewer, image-viewer
Quick Picture Viewer
🖼️ Lightweight, versatile desktop image viewer for Windows. The best replacement for the default Windows photo viewer.
Stars: ✭ 237 (+523.68%)
Mutual labels:  viewer, image-viewer
Jkqtplotter
an extensive Qt5 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
Stars: ✭ 246 (+547.37%)
Mutual labels:  qt5, scientific-visualization
cyan
Cyan Color Converter
Stars: ✭ 68 (+78.95%)
Mutual labels:  viewer, qt5
Qimgv
Qt5 image viewer with optional video support
Stars: ✭ 714 (+1778.95%)
Mutual labels:  qt5, image-viewer
Qt5 Imageviewer
Simple image viewer in Qt5
Stars: ✭ 5 (-86.84%)
Mutual labels:  viewer, qt5
Qview
Practical and minimal image viewer
Stars: ✭ 460 (+1110.53%)
Mutual labels:  qt5, image-viewer
Jquery Viewer
A jQuery plugin wrapper for Viewer.js.
Stars: ✭ 235 (+518.42%)
Mutual labels:  viewer, image-viewer
react-imageViewer
React component for image displaying in full screen
Stars: ✭ 61 (+60.53%)
Mutual labels:  viewer, image-viewer
vimiv-qt
An image viewer with vim-like keybindings
Stars: ✭ 130 (+242.11%)
Mutual labels:  qt5, image-viewer
global-chem
A Chemical Knowledge Graph of What is Common in the World.
Stars: ✭ 77 (+102.63%)
Mutual labels:  scientific-visualization
Viewer
Viewer is a configurable application template that enables you to display an ArcGIS web map using a variety of tools.
Stars: ✭ 56 (+47.37%)
Mutual labels:  viewer

Saccade (Sophisticated Image + OpticalFlow Viewer)

Build Status GitHub release

A saccade (/səˈkɑːd/ sə-KAHD) is a quick and simultaneous movement of both eyes in the same direction.

This project is the missing scientific HDR image viewer for Linux. It is OpenGL-based and aims at providing an efficient image viewer with some sophisticated functions for comparing images. When dragging and zooming an image in one viewport, all other viewports synchronously zoom and shift in the same way, so you see exactly the same patch in all images.

Features

  • OpenGL accelerated viewer using mip-mapping data structure
  • synchronize multiple viewports when dragging and zooming within one viewport
  • drag'n drop for open images
  • crop regions from image
  • keyboard short-cuts for all actions
  • set marker on a specific pixel
  • double-click on information in statusbar copies the values into the clipboard
  • filewatcher (images will be reloaded when they change)
  • interactive histogram widget which effects the image
  • supported file formats: png jpg bmp ppm tif CR2 and many more
  • helpful commands to arrange multiple windows
  • multi-threaded loading and writing

Supports the following file formats:

  • image: *.png *.jpg *.jpeg *.bmp *.ppm *.tif *.CR2 *.JPG *.JPEG, *.JPE
  • optical-flow: *.flo

Synchronized view-ports

Hereby, each viewport consists of different image-layers. Some action might affect only the active layer across all viewports (global effects), e.g., zooming and dragging, e.g. setting the crop-region:

When manipulating the histogram, the changes can be applied to only the current active layer or all layers in the current viewport (holding the SHIFT key). Further, a marker can be set precisely on a specific pixel, and all other views share the marker at exactly the same location. It uses the FreeImage library to load images from different types:

Install from binary

The related binaries for the master branch are generated automatically and statically linked to Qt5.9.2 to reduce dependencies and file-size. The pre-compile binaries are available with all dependencies and are tested in a VM with plain Ubuntu 16.04 .

Install from Source

Requirements

The requirements (Ubuntu 16.04) are currently:

  • Qt5.9
  • CMake
  • FreeImage library
  • Google Log
  • Google Flags

I plan to add CUDA for speeding up some functions.

Get dependencies and compile

The dockerfile lists all dependencies for building this project. Or follow the following guide:

Assuming you are on Ubuntu 16.04 getting all dependencies is done by

# install dependencies
sudo apt-get install libfreeimage3 libfreeimage-dev libgflags-dev libgoogle-glog-dev

The Ubuntu-packages contain an old version of Qt5. To get a recent Qt5 version (>=5.9) use the following commands (you might need to register for Qt).

cd /tmp
wget http://download.qt.io/official_releases/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.run
chmod +x qt-opensource-linux-x64-5.9.1.run
./qt-opensource-linux-x64-5.9.1.run

And finally just get and build this repository by

# clone this repo
git clone https://github.com/PatWie/saccade.git
cd saccade
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

A copy and paste version to automate the GUI installer is described in the Dockerfile.

To add the saccade application to the unity-launcher, edit the saccade.desktop file by adjust the paths:

edit saccade.desktop
cp saccade.desktop $HOME/.local/share/applications/saccade.desktop

and you find the app icon in the Ubuntu search bar. When debugging the application, it might be helpful to start it with the flag --logtostderr 1 and build it with DCMAKE_BUILD_TYPE=Debug.

Keyboard Shortcuts

These are very likely to changed in the next versions.

General shortcuts

Action Shortcut
quit entire the app Ctrl + Q
version info F1
set all viewports to same size F2
automatically arrange viewports F3
new viewport Ctrl + N

shortcuts for a single viewport (visible layer)

Action Shortcut
quit viewport Ctrl + W
add new image Ctrl + O
save current image Ctrl + S
crop rectangle Crlt + left mouse
toggle crop Ctrl + right click
save current crop Ctrl + X
next image ⇩, ⇨
delete single image Del
previous image ⇧, ⇦
fit window to image Ctrl + F
reset histogram Ctrl + H

shortcuts for local effects (all layers in single viewport)

Action Shortcut
reset histogram (all layers) Ctrl + Shift + H
delete all images Ctrl + Del
change hist. for all layers Shift + mouse (histogram)

shortcuts for global effects (synchronized across all viewports)

Action Shortcut
zoom rectangle Shift + left mouse
zoom in Ctrl + plus
zoom out Ctrl + minus
no zoom Ctrl + 0
fit to window Ctrl + 9
center image Ctrl + C
toggle marker Ctrl + M
toggle marker right click
shift image 10% right Shift + ⇨
shift image 10% left Shift + ⇦
shift image 10% down Shift + ⇩
shift image 10% up Shift + ⇧
next image in all viewports Ctrl + ⇩, Ctrl + ⇨
prev. image in all viewports Ctrl + ⇧, Ctrl + ⇦
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].