{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## ScaleView Op" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Added new repo: scijava.public\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "method": "display_data" }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0697cc42-d71f-45fb-90db-3f02aad19e35", "version_major": 2, "version_minor": 0 }, "method": "display_data" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "net.imagej.ImageJ@465e45d7" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "//load ImageJ\n", "%classpath config resolver scijava.public https://maven.scijava.org/content/groups/public\n", "%classpath add mvn net.imagej imagej 2.0.0-rc-67\n", "\n", "//create ImageJ object\n", "ij = new net.imagej.ImageJ()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This `Op` wraps the `Views.scale()` method of ImgLib2, enlarging the image by a set of scale factors. Let's see how the `Op` is called: through the use of an [interpolator](https://en.wikipedia.org/wiki/Interpolation) and an [`OutOfBoundsFactory`](http://javadoc.scijava.org/ImgLib2/net/imglib2/outofbounds/OutOfBoundsFactory.html). " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Available operations:\n", "\t(RandomAccessibleInterval out) =\n", "\tnet.imagej.ops.transform.scaleView.DefaultScaleView(\n", "\t\tRandomAccessibleInterval in,\n", "\t\tdouble[] scaleFactors,\n", "\t\tInterpolatorFactory interpolator,\n", "\t\tOutOfBoundsFactory outOfBoundsFactory?)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ij.op().help('scaleView')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the `Op` takes the following parameters:\n", "* `RandomAccessibleInterval in`: the input image\n", "* `double[] scaleFactors`: an array an element for each dimension that describes the factor to which that dimension is to be increased by (i.e. a value of 2 implies that the corresponding dimension should be twice as large in the output)\n", "* `InterpolatorFactory interpolator`: this Object tells the `Op` how to [interpolate](https://en.wikipedia.org/wiki/Interpolation) the spaces in between the known data points. There are many different types of [interpolation](http://javadoc.scijava.org/ImgLib2/) that are supported by ImageJ.\n", "* `OutOfBoundsFactory outOfBoundsFactory`: an optonal parameter that tells the `Op` how to handle cases close to the edge of the image. Since this parameter is optional we won't worry about it here.\n", "\n", "Let's find a really small image to scale up:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[INFO] Verifying GIF format\n", "[INFO] Reading dimensions\n", "[INFO] Reading data blocks\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAnklEQVR42u2WXQrAIAyD48k9mkfbmFAoA39qqx2sQh4ln9hEcRkuAFWiPdYApZQACAAfAEpAzrkqAP4F8Bi6AZChGwCZugBw0+MAZOpyBdz8eAr4aV3+Az0Td4ClQV4FsIJQAXDR8L01ep6hyf9IM2mAtoS0V2HShAHwGYDZwdsKIIUwTcFKMkQArbLpyaSIUkqi9pNAwKr1Ro3YmosbRJ9MlGVXVHcAAAAASUVORK5CYII=" }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input = ij.scifio().datasetIO().open(\"http://imagej.net/images/ij-icon.gif\")\n", "\n", "ij.notebook().display(input)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's try scaling it using [nearest neighbor](https://en.wikipedia.org/wiki/Nearest-neighbor_interpolation) interpolation:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAByUlEQVR42u3dMQ6DMAwF0OTkHI2jtUMnGKClgcTxs+Qd9N9gWVFSXuqrKqUcdtj/Ei0A6gKAdV03DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQIfN/Lshw2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQv/YBAgAAAAAAAAAAOQIHAAAAAAAAAAByLnoAAAAAAAAAAIAcgQMAAAAAAAAAADkWPb8GCAAAAAAAAAAAzBl466ERAAAAAAAAAAAYI/DWjzt7PBoAAAAAAAAABvnwhwMBAAAAAAAAAAByApi1AAAAAAAAAGA2AEAAAAAAAAAAAABX+uzAx789ysOTAAAAAAAAABB+mLkZRGtQhkAAAAAAAAAAsCgCAAAAAAAAAAD6gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgOIcsADAAAAAAAAAAC4F8AsIAAAAAAAAAAgW+CtAURdLAEAAAAAAADA6HX3hQ1PtwsiAAAAAAAAAOBTtdZNR7v0KSoIAAAAAAAAABh9UTN793qMGgAAAAAAAAAMgYZAABICeAM2BOvWPLTgjQAAAABJRU5ErkJggg==" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import net.imglib2.interpolation.randomaccess.NearestNeighborInterpolatorFactory\n", "\n", "scaleFactors = [4, 4, 1] // Enlarge X and Y by 4x; leave channel count the same.\n", "\n", "scaled = ij.op().run(\"scaleView\", input, scaleFactors, new NearestNeighborInterpolatorFactory())\n", "\n", "ij.notebook().display(scaled)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice and pixel-y. If we want something smoother, we can try [N-Linear](https://en.wikipedia.org/wiki/Linear_interpolation) interpolation:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[INFO] Verifying GIF format\n", "[INFO] Reading dimensions\n", "[INFO] Reading data blocks\n" ] }, { "data": { "image/png": "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" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import net.imglib2.interpolation.randomaccess.LanczosInterpolatorFactory\n", "\n", "scaleFactors = [4, 4, 1] // Enlarge X and Y by 4x; leave channel count the same.\n", "\n", "input = ij.scifio().datasetIO().open(\"http://imagej.net/images/ij-icon.gif\")\n", "\n", "scaled = ij.op().run(\"scaleView\", input, scaleFactors, new LanczosInterpolatorFactory())\n", "\n", "ij.notebook().display(scaled)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Be sure to take a look at [`interpolateView`](interpolateView.ipynb), as it is somewhat related to our `scaleView` `Op`." ] } ], "metadata": { "kernelspec": { "display_name": "Groovy", "language": "groovy", "name": "groovy" }, "language_info": { "codemirror_mode": "groovy", "file_extension": ".groovy", "mimetype": "", "name": "Groovy", "nbconverter_exporter": "", "version": "2.4.3" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": false, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": false, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }