ImageWarp 1.4 For Windows

Author Kenneth R. McVay
Environmental Geologist


This extension uses the Independent JPEG Group JPEG LIB Release 6B
Copyright (c) 1991-1998 Thomas G. Lane.

This extension uses the LibTiff library
Copyright (c) 1988-1998 Sam Leffler
Copyright (c) 1991-1998 Silicon Graphics, Inc.

My test image while developing this extension was a 54,036KB true color image that has dimensions 4000 x 4611 pixels. For grayscale I used the same image as above converted to grayscale.

To the best of my knowlage this extension has no errors. You are bound by the agreement on ESRI’s website where you downloaded the extension. In the event you find any errors please report them to me with a description of the problem and the image type you were using so that I may get it fixed ASAP.

ImageWarp is an ArcView 3.0 Extension for Warping Image Themes from an unknown Datum/Projection to a known Datum/Projection. ImageWarp will register your image to any feature theme, grid theme, or image theme using scaling, warping and rotation. ImageWarp has many useful features such as a ROAM window, Snapping, Compute from which will calculate the from Ground Control Point after you have 3 GCP pairs, a batch mode for similar data sets, and many other enhancements. ImageWarp version 1.4 supports output of bil, bsq, bip, jpg, and tif. JPEG images that are output has the image quality set to 100 (best). TIFF images our output as uncompressed.

ImageWarp requires ESRI’s Spatial Analyst Extension version 1.1. If you do not have the Spatial Analyst Extension then ImageWarp will not work. If you do not have Spatial Analyst then you can try RIFT which is an Extension/Visual Basic combo which will warp images. Its not as nice and neat as ImageWarp but it will get the job done.

This extension works just like my ShapeWarp extension. ShapeWarp will warp Feature Themes while this extension will warp Image Themes. Since they work in the same manner I did not include an example session with this document. If you need an example look at the documentation for ShapeWarp which has an example session the difference being the type of theme to be warped.

This extension ImageWarp 1.4 is being provide by the author free of charge on the ESRI Web site You may not re-distribute it to others or place it on your own web without the prior consent of the author. The author wants to keep the distribution from one site so that a version control can be maintained.

The author is not responsible for any damages ImageWarp 1.4 may cause to your system. The author is not responsible for any data loss due to using the Shape Warp extension.

This extension was a joy to write and I hope you can make exellent use of it as I have. I do not anticipate many “bugs” in the extension for I have tested it considerably. In the event that you do find a problem with the extension let me know with the exact nature of the problem and I will correct the problem if possible.

If there is a problem in the documentation let me know. If you would like to help create better documentation then please do.

Let me know if you like the extension. I do not hear from many people who use the code that I write. If people like what I am doing and would like to see more FREE stuff then let me know what kinds of ArcView applications you would like. In my spare time I will try to implement them if I am interested by them and have the time.

All in the good Spirit of Sharing.

Enjoy Enjoy. -peace K.


This extension was created using Dialog Designer extension and thus requires the files avdlog.dll and avdlog.dat. The avdlog.dll needs to be placed into your $AVBIN directory. This directory is the Bin32 directory if you have not changed $AVBIN from the default.
The avdlog.dat file needs to be placed into your Lib32 directory.

ImageWarp 1.4 also makes use of g2i.dll which should be placed into your $AVBIN directory.

Place the ImageWarp 1.4 avx file into your Ext32 directory then start ArcView GIS and choose from the menu File – > Extensions and check the ImageWarp 1.4 extension to enable it.

Getting Started

Before you begin a ImageWarp 1.4 session make sure you save all your work and then start a new project. ImageWarp 1.4 removes all existing documents from the project, thus if you start the session with existing work present you will loose these documents.

To begin a ImageWarp 1.4 session press the GreenDiamond button located on the Project Button Bar.

Setting a Projection
You will be asked if you would like to set the Projection for the TO View. The TO View is where the themes are located that you want to warp to. The FROM view is where the themes that you would like to warp are located. If your TO themes are in decimal degrees and you would like to warp the FROM themes to something other than decimal degrees then you should specify the projection that you would like to warp to. If your data is in something other then decimal degrees then you should not set a Projection. If you find that you set a projection and you decide against it then you can hit cancel in the Projection Dialog Box. You will be ask to confirm setting the projection.

Picking the themes for the views
Once the Projection is set you will be ask to enter the image theme you would like to warp. The image theme will go into the FROM View. Next you will be ask to pick the TO themes which are the reference themes you would like to warp to. These themes will go into the TO and TO ROAM Views. Themes for the TO and TO ROAM Views can be any valid Feature, Image, or GRID theme.

Selecting the Ground Control Point table (GCP)
Next you will be ask if you would like to use an existing table. You may use any valid table that is created with this extension as long as the data in the table match the TO and FROM themes. If you have an existing table you would like to use then select YES from the message box and then select the existing table from the file dialog. If you do not have an existing GCP table then select NO from the message box and then using the file dialog select the directory and name for the new table.

The Main Views
You should now see the following screen. (your data will be different then what I am using here for an example).

The example image below is from ShapeWarp. With ImageWarp the FROM view will contain an image theme.

All of the Normal Menus, Buttons, and Tools are removed. The need Buttons, and Tools are provided on the Dialog you see near the bottom center of the example.

The large View on the right is the TO***ROAM View. This view is provide for easy zooming and panning the two view. Zoom operations performed on the TO ROAM view does not affect it, but it does affect the TO View located in the bottom left hand corner. Thus if we use the zoom in tool and drag a box in the ROAM View then the zoom takes place in the TO View. The top left view is the FROM VIEW which contains the image theme you would like to warp.

The Dialog looks like the following

Discussion of all the Buttons and Tools

As explained at the top of this document a menu choice ImageWarp 1.4 has been added to the Project GUI. The choice ImageWarp 1.4 Session is exactly the same as the GreenDiamond button on the Project ButtonBar. The choice Import Table will allow you to import the TO coordinates, FROM coordinates or both. To import a table just choose the menu item and you will be asked to give the name of the dbase table you would like to import. You will also have to designate a new name for the new table. You will be shown a list of the fields in from the import table and will be required to pick the fields you would like to use for the TO X, TO Y, FROM X, FROM Y coordinates. If you only want to import just the TO coordinates then pick them and when you are asked to pick the FROM coordinates choose the list choice NONE. The same thing goes if you only want to import the FROM coordinates just specify NONE for the TO coordinates. The new table will be created with the correct field names and will be filled out with the correct values. If you choose NONE for the TO or FROM fields the records for those fields will be filled out with 0.000. NOTE – if you specify a field for TO X then you must specify a field for TO Y. The same goes for FROM X and Y. This is not checked for in the code and if you don’t watch it you will end up with the X coordinates filled out for either the TO or FROM and the Y coordinates will be 0.0000.
The table will be opened and displayed and you may edit it if need be. If you only specify the TO or FROM coordinate then the other either TO or FROM will be 0.000 for both X and Y. ImageWarp 1.4 uses this to know that you only have the coordinates for the To or From themes. When you use this table in a ImageWarp 1.4 session the 0.000 coordinates will be changes so that they display in the view horizontally across the top half of the view. You may then use the move tools as explained below to move the GCP’s to the correct positions.

This tool is the GCP Selection Tool. With it you drag a box around a GCP which selects the point. You can then perform other operations on the selected GCP ( i.e. move it, delete it, or turn it off).
This tool is the Move GCP Tool. Once a GCP in the TO or FROM View is selected, using this tool you can click on the new position for the point and it will be moved to the newly selected point.
This is the GCP PickTool. You use this tool to pick the GCP’s in the TO and FROM Views. You must always pick a GCP in the TO View first followed by picking a GCP in the FROM View.
The Zoom In, Zoom Out, and Pan Tools. These work exactly as they normally do with one exception. When you zoom on the TO ROAM View the zoom takes place on the TO View. You cannot Pan on the TO ROAM View.
The Feature Select tool. Works the same as it normally does. Great for selecting a feature in the TO ROAM View and then choosing the Zoom to Selected button. The zoom will take place in the TO View.

Toggle Table Of Contents Button. I am sure you noticed the views are not showing the TOC. Pressing this button will toggle them open so that you may change colors etc . . . on the themes. Pressing it again will close the TOC.
Toggle View Button. This button will toggle the views from the main views to the GCP table and back.
Calculate RMS Button. This button will calculate the required polynomial and RMS for the chosen GCP’s. For a first order fit you need at least 3 GCP’s, 6 GCP’s for a second order, and 10 GCP’s for a third order etc… . You will be notified if you try to calculate the rms for an order in which you do not have enough GCP’s.
Delete multiple GCP’s Button. Choosing this button you will be displayed a dialog that allows you to pick one or more GCP’s and delete them.
Toggle GCP’s ON/OFF. Sometimes you may not want to delete a GCP you may just want to turn it off. This button allows you to do that by picking the GCP’s you want to turn on or off.GCP’s that are ON look like a RedCross, GCP’s that are OFF look like a BlueCross.

Delete a Single GCP Button. With this button, after using the Select GCP tool to select a GCP, then you press this button to delete the single GCP.
These are standard ArcView Buttons Zoom to Selected, Zoom to Theme, Zoom to Extents, Select None, Zoom Out, Zoom In, Add Themes, and Zoom to Previous. These buttons work as normal. When zooming on the TO ROAM view the actual zoom will take place in the TO View. Zoom Out, and Zoom In only work with the TO and FROM Views as does Zoom Previous.

Compute From GCP button. After you have at least 3 GCP’s selected and then you select the point for the TO View on the next, you can then use this button to Calculate and add the point in the FROM View. The point will be added and the From view will be centered on the new point. The point will only be close you will still need to make adjustments to its position by moving it.
The Warp button. After you have chosen all your GCP’s and are happy with them and calculated the fit equation/RMS, then you can use this button to go ahead an create the new warped themes. Once you press this button you will be ask the the type of resampling , the output image type, and for the name of the new image

This button allows you to quit the ImageWarp 1.4 session.
The Snap Dialog Button. This button was saved for last because it has it own dialog.

Notice there are two sets of identical Buttons and tools on this dialog one for the FROM VIEW and one for the TO VIEW.
The Pick Theme button allows you to specify which theme you would like to snap to.
The Snap Type button allows you to specify how you want the snapping to take place. The choices are None, To Closest Vertex, To Closest Boundary, To Closest EndPoint, and To Nearest Intersection. The Tool at the bottom is the Snap Tolerence tool which allows you to set the Snap Tolerence. If you want to use snapping you must choose a theme, type and tolerence for both the FROM View, and TO View.

I enjoyed writing this extension very much and hope you can make exellent use of it. If you find any problems with it let me know and I will try to correct the problem. I do not anticipate many problems with the extension.

-peace K.

Kenneth R. McVay


Filed under : blog, tags: