scholarly journals SharpImage: An Image Processing Prototyping Environment

2007 ◽  
Author(s):  
Dan Mueller

This paper describes an image processing prototyping environment called SharpImage. SharpImage is a stand-alone Windows application geared towards the pre-processing and creation of volume illustrations, although other generic tasks are inherently supported. The user interacts with the environment using a command console, and can view images as a series of slices or through volume rendering. We describe the design and introduce functionality using a number of examples. We have found the environment useful for prototyping a range of image processing tasks and provide the source-code in the hope others may also find it useful.

2021 ◽  
Vol 33 (5) ◽  
pp. 181-204
Author(s):  
Vladimir Frolov ◽  
Vadim Sanzharov ◽  
Vladimir Galaktionov ◽  
Alexander Shcherbakov

In this paper we propose a high-level approach to developing GPU applications based on the Vulkan API. The purpose of the work is to reduce the complexity of developing and debugging applications that implement complex algorithms on the GPU using Vulkan. The proposed approach uses the technology of code generation by translating a C++ program into an optimized implementation in Vulkan, which includes automatic shader generation, resource binding, and the use of synchronization mechanisms (Vulkan barriers). The proposed solution is not a general-purpose programming technology, but specializes in specific tasks. At the same time, it has extensibility, which allows to adapt the solution to new problems. For single input C++ program, we can generate several implementations for different cases (via translator options) or different hardware. For example, a call to virtual functions can be implemented either through a switch construct in a kernel, or through sorting threads and an indirect dispatching via different kernels, or through the so-called callable shaders in Vulkan. Instead of creating a universal programming technology for building various software systems, we offer an extensible technology that can be customized for a specific class of applications. Unlike, for example, Halide, we do not use a domain-specific language, and the necessary knowledge is extracted from ordinary C++ code. Therefore, we do not extend with any new language constructs or directives and the input source code is assumed to be normal C++ source code (albeit with some restrictions) that can be compiled by any C++ compiler. We use pattern matching to find specific patterns (or patterns) in C++ code and convert them to GPU efficient code using Vulkan. Pattern are expressed through classes, member functions, and the relationship between them. Thus, the proposed technology makes it possible to ensure a cross-platform solution by generating different implementations of the same algorithm for different GPUs. At the same time, due to this, it allows you to provide access to specific hardware functionality required in computer graphics applications. Patterns are divided into architectural and algorithmic. The architectural pattern defines the domain and behavior of the translator as a whole (for example, image processing, ray tracing, neural networks, computational fluid dynamics and etc.). Algorithmic pattern express knowledge of data flow and control and define a narrower class of algorithms that can be efficiently implemented in hardware. Algorithmic patterns can occur within architectural patterns. For example, parallel reduction, compaction (parallel append), sorting, prefix sum, histogram calculation, map-reduce, etc. The proposed generator works on the principle of code morphing. The essence of this approach is that, having a certain class in the program and transformation rules, one can automatically generate another class with the desired properties (for example, the implementation of the algorithm on the GPU). The generated class inherits from the input class and thus has access to all data and functions of the input class. Overriding virtual functions in generated class helps user to carefully connect generated code to the other Vulkan code written by hand. Shaders can be generated in two variants: OpenCL shaders for google “clspv” compiler and GLSL shaders for an arbitrary GLSL compiler. Clspv variant is better for code which intensively uses pointers and the GLSL generator is better if specific HW features are used (like hardware ray tracing acceleration). We have demonstrated our technology on several examples related to image processing and ray tracing on which we get 30-100 times acceleration over multithreaded CPU implementation.


1997 ◽  
Vol 36 (01) ◽  
pp. 1-10 ◽  
Author(s):  
M. Haubner ◽  
A. Lösch ◽  
F. Eckstein ◽  
M. D. Seemann ◽  
W. van Eimeren ◽  
...  

Abstract:The most important rendering methods applied in medical imaging are surface and volume rendering techniques. Each approach has its own advantages and limitations: Fast surface-oriented methods are able to support real-time interaction and manipulation. The underlying representation, however, is dependent on intensive image processing to extract the object surfaces. In contrast, volume visualization is not necessarily based on extensive image processing and interpretation. No data reduction to geometric primitives, such as polygons, is required. Therefore, the process of volume rendering is currently not operating in real time. In order to provide the radiological diagnosis with additional information as well as to enable simulation and preoperative treatment planning we developed a new hybrid rendering method which combines the advantages of surface and volume presentation, and minimizes the limitations of these approaches. We developed a common data representation method for both techniques. A preprocessing module enables the construction of a data volume by interpolation as well as the calculation of object surfaces by semiautomatic image interpretation and surface construction. The hybrid rendering system is based on transparency and texture mapping features. It is embedded in a user-friendly open system which enables the support of new application fields such as virtual reality and stereolithography. The efficiency of our new method is described for 3-D subtraction angiography and the visualization of morpho-functional relationships.


JURNAL TIKA ◽  
2021 ◽  
Vol 5 (3) ◽  
pp. 105-109
Author(s):  
Amrullah Amrullah ◽  
Mutasar Mutasar

Era Revolusi Industri 4.0 programmer dihadirkan platform CMS, Web builder yang mempercepat pembuatan program seperti create templete responsive/dinamis, CRUD dan grafik namun belum adanya framework untuk membangun source code pada platform web yang memecahkan alur proses pada sebuah algoritma sehingga akan membantu programmer/peneliti dalam menyelesaikan masalah aritmatika/logical proses pada sebuah algoritma/metode jika di-implementasikan kedalam source code platform web HTML, PHP, CSS. Urgensi permasalahan ini harus adanya sistem repository yang menyediakan source code algoritma komputer meliputi (expert system, data mining, decision system, artificial intelligence, kriptografi/security computer, system information, searching, image processing). Adanya repository ini akan memberikan kemudahan dalam menghasilkan source code algoritma/metode komputer untuk dapat digunakan sebagai, modify,combine, comparation, example, trying, testing , implementation, sehingga akan mudah dalam penyelesaian program penelitian dan membantu mempercepat laju skill programmer/peneliti di perguruan tinggi.


2011 ◽  
Author(s):  
Rashindra Manniesing

MevisLab [2] is a development environment for medical image processing and visualization, which supports the reading and writing of combined dicom/tiff images. In this document we provide the source code (ImageIO factory) for the Insight Toolkit (ITK) framework [4]. This image IO plugin supports 2D, 3D and 4D scalar images.Note: this class depends on version GDCM 2.0 and above.


2019 ◽  
Author(s):  
Bhavya Ajani ◽  
Sikander Sharda

In this paper, we describe a set of filters, implemented in the Insight Toolkit www.itk.org, for converting an image from Cartesian co-ordinate space to Polar co-ordinate space and vice-versa. Cartesian to Polar conversion of an image is a useful operation in preprocessing stage of certain image-processing algorithm where feature of interest has simplified representation in the polar space. This paper is accompanied with the source code, input data, parameters and output data that the authors used for validating the algorithm described in this paper. This adheres to the fundamental principle that scientific publications must facilitate reproducibility of the reported results.


2006 ◽  
Vol 17 (4) ◽  
pp. 1081-1088 ◽  
Author(s):  
Michael Wyss ◽  
Johannes M. Froehlich ◽  
Michael A. Patak ◽  
Christoph F. Juli ◽  
Markus B. Scheidegger ◽  
...  

Sign in / Sign up

Export Citation Format

Share Document