Viewer for very large image sets - imagej

I'm looking for a viewer that can view thousands of images selectively. For example, I have a set of photos from 1-1000. Due to the magnitude of the photos (8MB per image), I only wish to view photos 20-40. This is to be done with selecting specific coordinates of the photos.
What I have done:
-Tried the plugin BigDataViewer on ImageJ (FIJI) however, this cannot work because it can only view stitched images, but I wish to extract the chosen images before stitching. However, is there another way I can use BigDataViewer for this task?

Related

Software to open titled geo PNG file?

I'm trying to extract some a data (a map image) from a PNG file which is tiled somehow. The file itself is only 256x256 pixels (according to 'get info' on the mac) but is is 23MB. It is from an iPad app called Mud Map and it contains a map that I purchased but I've lost the original that I converted to this format. When I view this file (renamed to a .PNG) I see one section of the map - 256x256px.
I'm asking this question on StackOverflow because I want to know more about these tiled images. How does one create a tiled PNG and what is the software that will open and or create these things. I'm interested in what metadata is required too. I'm loving the outdoors and mapping!!
The answer to this question, is that it cannot be done in manner I have described.
The images in the PNG are not tiled, the the files are just merged together which is no doubt an individual feature of the program as is it does not appear to be any kind of standard.
I have no access to application you mentioned in IPad. Just share some thought about possible situation here.
1) Map tiles are commonly used in GIS web application such as Google maps and so on. It is used to improve the performance especially when user pan very often. A map displayed typical map window is divided into for instance 4*4 separate calls. So maybe only 4 call will be made when user just pan a little bit instead of get the whole map for the 16 tiles.
The source image for this tiles can be in pre-generated tiles or just one static map.
2) Assemble separate images to one in GIS is called image mosaic function. GIS server can read a collection of images and mosaiced them into one with the overlapping part handle based on a certain rule. And the images are in pre defined grid format which are seamless and no overlapping, then it is called tiled images. We could pre-generated the tiles from one mosaiced image, or we can server it on the fly. Some GIS server/library/application does have the tile server function built in.

Handle large images in iOS

I want to allow the user to select a photo, without limiting the size, and then edit it.
My idea is to create a thumbnail of the large photo with the same size as the screen for editing, and then, when the editing is finished, use the large photo to make the same edit that was performed on the thumbnail.
When I use UIGraphicsBeginImageContext to create a thumbnail image, it will cause a memory issue.
I know it's hard to edit the whole large image directly due to hardware limits, so I want to know if there is a way I can downsample the large image to less then 2048*2048 wihout memory issues?
I found that there is a BitmapFactory Class which has an inSampleSize option which can downsample a photo in Android platform. How can this be done on iOS?
You need to handle the image loading using UIImage which doesn't actually load the image into memory and then create a bitmap context at the size of the resulting image that you want (so this will be the amount of memory used). Then you need to iterate a number of times drawing tiles from the original image (this is where parts of the image data are loaded into memory) using CGImageCreateWithImageInRect into the destination context using CGContextDrawImage.
See this sample code from Apple.
Large images don't fit in memory. So loading them into memory to then resize them doesn't work.
To work with very large images you have to tile them. Lots of solutions out there already for example see if this can solve your problem:
https://github.com/dhoerl/PhotoScrollerNetwork
I implemented my own custom solution but that was specific to our environment where we had an image tiler running server side already & I could just request specific tiles of large images (madea server, it's really cool)
The reason tiling works is that basically you only ever keep the visible pixels in memory, and there isn't that many of those. All tiles not currently visible are factored out to the disk cache, or flash memory cache as it were.
Take a look at this work by Trevor Harmon. It improved my app's performance.I believe it will work for you too.
https://github.com/coryalder/UIImage_Resize

More memory efficient way of displaying images in iOS?

I have a photo collage app that takes a bunch of photos from a user's facebook/instagram/library, and draws a bunch of them onto the UIView. To control the amount, there is a slider tool that calculates density (for example, every 150px wide, add an image). I'm running into memory issues after lots and lots of UIImageViews are being added.
Is there some better, more efficient way of showing images onto the screen?
Why not use a UICollectionView. It's designed to present a group of objects (including images) in a manner similar to UITableVIew. Like a TableView memory is automatically managed by the controller.
See the documentation for more information.
You didn't make it clear in your question exactly how you're using this set of images. An alternative is to draw the images into the graphic context using Core Graphics. This will draw the images into a single view instead of into several views. There's only one bitmap to keep in memory. See Drawing a PNG Image Into a Graphics Context for Blending Mode Manipulation for an example.

Core Image, save all at once or one after the other?

I am taking an image from AVFoundation, resizing it and cropping it, then taking that image and applying a set of filters to it. Based upon what the user has chosen, there are three possible filters to apply, and three separate images to save (one filter per image).
I wondered if it's sensible to save the images once the filter has been applied, or wait until all the filters and images are applied and created, then saving the entire batch?
Also, if they choose the highest res and all the filters, the phone will have to create three 1800x1800 images, apply three filters, then save three files. I'm concerned this will become too much for the device, so wonder if it's sensible to stagger the conversion and saving?
Any guidance you could give would be great. I don't need code samples (but feel free), I'm looking more into best practices.
After testing out various methods, it seems there is no way faster than the others. I'm saving each image after creating it, so that I can release it from memory.
Process goes:
Take camera data. --> Run data through filters. --> Take output image and convert to CGImageRef. --> Save that and release.

Is it possible to batch processing in photoshop make resize the different size of images?

Is it possible to perform batch processing in Photoshop to resize images to different sizes at the same time?
Try using Phatch. It's free and you can use Python to script it (and it allows performing actions like resizing).
As far as Photoshop is concerned why don't you just group the images in to folders depending on what size you want them and then batch process each folder?
The only way to do this with Photoshop is to either set one axis to the same size on all the images, or perform a stop after the action runs each time so you can manually resize the photo to the correct dimensions.
The first option doesn't sound like what you want, and the second option won't save you much time. Using two folders sounds like the best option, assuming you've only got two different dimensions of photo to resize.

Resources