Something More for Research

Explorer of Research #HEMBAD

Basic drawing examples of OpenCV

Posted by Hemprasad Y. Badgujar on July 20, 2015


Drawing a line

void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
Parameters:

  • img – Image.
  • pt1 – First point of the line segment.
  • pt2 – Second point of the line segment.
  • color – Line color.
  • thickness – Line thickness.
  • lineType – Type of the line:
    • 8 (or omitted) – 8-connected line.
    • 4 – 4-connected line.
    • CV_AA – antialiased line.
  • shift – Number of fractional bits in the point coordinates.

Example 1: Drawing a line


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( )
{   
  // Create black empty images
  Mat image = Mat::zeros( 400, 400, CV_8UC3 );
  
  // Draw a line
  line( image, Point( 15, 20 ), Point( 70, 50), Scalar( 110, 220, 0 ),  2, 8 );
  imshow("Image",image);
  waitKey( 0 );
  return(0);
}


Drawing a Circle

void circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
Parameters:

  • img – Image where the circle is drawn.
  • center – Center of the circle.
  • radius – Radius of the circle.
  • color – Circle color.
  • thickness – Thickness of the circle outline, if positive. Negative thickness means that a filled circle is to be drawn.
  • lineType – Type of the circle boundary. See the line() description.
  • shift – Number of fractional bits in the coordinates of the center and in the radius value.

The function circle draws a simple or filled circle with a given center and radius.

Example 2: Drawing a Circle


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( )
{   
  // Create black empty images
  Mat image = Mat::zeros( 400, 400, CV_8UC3 );
  
  // Draw a circle
  circle( image, Point( 200, 200 ), 32.0, Scalar( 0, 0, 255 ), 1, 8 );
  imshow("Image",image);
  waitKey( 0 );
  return(0);
}


Drawing an Ellipse

void ellipse(Mat& img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
Parameters:

  • img – Image.
  • center – Center of the ellipse.
  • axes – Length of the ellipse axes.
  • angle – Ellipse rotation angle in degrees.
  • startAngle – Starting angle of the elliptic arc in degrees.
  • endAngle – Ending angle of the elliptic arc in degrees.
  • box – Alternative ellipse representation via RotatedRect or CvBox2D. This means that the function draws an ellipse inscribed in the rotated rectangle.
  • color – Ellipse color.
  • thickness – Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that a filled ellipse sector is to be drawn.
  • lineType – Type of the ellipse boundary. See the line() description.
  • shift – Number of fractional bits in the coordinates of the center and values of axes.

The functions ellipse with less parameters draw an ellipse outline, a filled ellipse, an elliptic arc, or a filled ellipse sector. A piecewise-linear curve is used to approximate the elliptic arc boundary.

If you use the first variant of the function and want to draw the whole ellipse, not an arc, passstartAngle=0 and endAngle=360.

Example 3: Drawing an Ellipse


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( )
{   
  // Create black empty images
  Mat image = Mat::zeros( 400, 400, CV_8UC3 );
  
  // Draw a ellipse
  ellipse( image, Point( 200, 200 ), Size( 100.0, 160.0 ), 45, 0, 360, Scalar( 255, 0, 0 ), 1, 8 );
  ellipse( image, Point( 200, 200 ), Size( 100.0, 160.0 ), 135, 0, 360, Scalar( 255, 0, 0 ), 10, 8 );
  ellipse( image, Point( 200, 200 ), Size( 150.0, 50.0 ), 135, 0, 360, Scalar( 0, 255, 0 ), 1, 8 );
  imshow("Image",image);
  waitKey( 0 );
  return(0);
}


Drawing a Rectangle

void rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
Parameters:

  • img – Image.
  • pt1 – Vertex of the rectangle.
  • pt2 – Vertex of the rectangle opposite to pt1 .
  • rec – Alternative specification of the drawn rectangle.
  • colorRectangle color or brightness (grayscale image).
  • thickness – Thickness of lines that make up the rectangle. Negative values, likeCV_FILLED , mean that the function has to draw a filled rectangle.
  • lineType – Type of the line. See the line() description.
  • shift – Number of fractional bits in the point coordinates.

Example 4: Drawing a Rectangle


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( )
{   
  // Create black empty images
  Mat image = Mat::zeros( 400, 400, CV_8UC3 );
  
  // Draw a rectangle ( 5th argument is not -ve)
  rectangle( image, Point( 15, 20 ), Point( 70, 50), Scalar( 0, 55, 255 ), +1, 4 );
  imshow("Image1",image);
  // Draw a filled rectangle ( 5th argument is -ve)
  rectangle( image, Point( 115, 120 ), Point( 170, 150), Scalar( 100, 155, 25 ), -1, 8 );
  imshow("Image2",image);
  waitKey( 0 );
  return(0);
}


Drawing a Filled Polygon

void fillPoly(Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int lineType=8, int shift=0, Point offset=Point() )
Parameters:

  • img – Image.
  • pts – Array of polygons where each polygon is represented as an array of points.
  • npts – Array of polygon vertex counters.
  • ncontours – Number of contours that bind the filled region.
  • color – Polygon color.
  • lineType – Type of the polygon boundaries. See the line() description.
  • shift – Number of fractional bits in the vertex coordinates.
  • offset – Optional offset of all points of the contours.

The function fillPoly fills an area bounded by several polygonal contours. The function can fill complex areas, for example, areas with holes, contours with self-intersections (some of their parts), and so forth.

Example 4: Drawing a Filled Polygon


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( )
{   
  // Create black empty images
  Mat image = Mat::zeros( 400, 400, CV_8UC3 );
  
  int w=400;
  // Draw a circle
  /** Create some points */
  Point rook_points[1][20];
  rook_points[0][0] = Point( w/4.0, 7*w/8.0 );
  rook_points[0][1] = Point( 3*w/4.0, 7*w/8.0 );
  rook_points[0][2] = Point( 3*w/4.0, 13*w/16.0 );
  rook_points[0][3] = Point( 11*w/16.0, 13*w/16.0 );
  rook_points[0][4] = Point( 19*w/32.0, 3*w/8.0 );
  rook_points[0][5] = Point( 3*w/4.0, 3*w/8.0 );
  rook_points[0][6] = Point( 3*w/4.0, w/8.0 );
  rook_points[0][7] = Point( 26*w/40.0, w/8.0 );
  rook_points[0][8] = Point( 26*w/40.0, w/4.0 );
  rook_points[0][9] = Point( 22*w/40.0, w/4.0 );
  rook_points[0][10] = Point( 22*w/40.0, w/8.0 );
  rook_points[0][11] = Point( 18*w/40.0, w/8.0 );
  rook_points[0][12] = Point( 18*w/40.0, w/4.0 );
  rook_points[0][13] = Point( 14*w/40.0, w/4.0 );
  rook_points[0][14] = Point( 14*w/40.0, w/8.0 );
  rook_points[0][15] = Point( w/4.0, w/8.0 );
  rook_points[0][16] = Point( w/4.0, 3*w/8.0 );
  rook_points[0][17] = Point( 13*w/32.0, 3*w/8.0 );
  rook_points[0][18] = Point( 5*w/16.0, 13*w/16.0 );
  rook_points[0][19] = Point( w/4.0, 13*w/16.0) ;
  const Point* ppt[1] = { rook_points[0] };
  int npt[] = { 20 };
  fillPoly( image, ppt, npt, 1, Scalar( 255, 255, 255 ), 8 );
  imshow("Image",image);
  waitKey( 0 );
  return(0);
}


Putting Text in image

putText renders the specified text string in the image.

void putText(Mat& img, const string& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false )
Parameters:

  • img – Image.
  • text – Text string to be drawn.
  • org – Bottom-left corner of the text string in the image.
  • fontFace – Font type. One of FONT_HERSHEY_SIMPLEX, FONT_HERSHEY_PLAIN,FONT_HERSHEY_DUPLEX, FONT_HERSHEY_COMPLEX, FONT_HERSHEY_TRIPLEX,FONT_HERSHEY_COMPLEX_SMALL, FONT_HERSHEY_SCRIPT_SIMPLEX, orFONT_HERSHEY_SCRIPT_COMPLEX, where each of the font ID’s can be combined withFONT_HERSHEY_ITALIC to get the slanted letters.
  • fontScale – Font scale factor that is multiplied by the font-specific base size.
  • color – Text color.
  • thickness – Thickness of the lines used to draw a text.
  • lineType – Line type. See the line for details.
  • bottomLeftOrigin – When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner.

Example 5: Putting Text in image


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( )
{
  // Create black empty images
  Mat image = Mat::zeros( 400, 400, CV_8UC3 );
  
  putText(image, "Hi all...", Point(50,100), FONT_HERSHEY_SIMPLEX, 1, Scalar(0,200,200), 4);
  imshow("Image",image);
  waitKey( 0 );
  return(0);
}

Posted in Mixed | Tagged: | Leave a Comment »

cppconlib: A C++ library for working with the Windows console

Posted by Hemprasad Y. Badgujar on July 20, 2015


cppconlib is built with C++11 features and requires Visual Studio 2012 or newer. The library is available in a single header called conmanip.h and provides a set of helper classes, functions and constants for manipulating a Windows console (using the Windows console functions). The library features the following components:

  • console_context<T>: represents a context object for console operations; its main purpose is restoring console settings; typedefs for the three consoles are available (console_in_context, console_out_context and console_err_context)
  • console<T>: represents a console objects providing operations such as changing the foreground and background colors, the input mode, screen buffer size, title, and others; typedefs for the three consoles are available (console_in, console_out and console_err)
  • manipulating functions that can be used with cout/wcout and cin/wcin: settextcolor()/restoretextcolor(), setbgcolor()/restorebgcolor(), setcolors(),setmode()/clearmode(), setposx()/setposy()/setpos().

The library can be downloaded from here. Detailed documentation is available here.

cppconlib

Examples

The following example prints some text in custom colors and then reads text in a different set of colors.

cppconlib2

The following code prints a rhomb to the console:

cppconlib3

For more details and updates check the project at codeplex: https://cppconlib.codeplex.com.

UPDATE: A NuGet package for cppconlib is available.

Posted in Computer Software, Computer Vision | Tagged: , , , , , | Leave a Comment »

OpenCV: Color-spaces and splitting channels

Posted by Hemprasad Y. Badgujar on July 18, 2015


Conversion between color-spaces

Our goal here is to visualize each of the three channels of these color-spaces: RGB, HSV, YCrCb and Lab. In general, none of them are absolute color-spaces and the last three (HSV, YCrCb and Lab) are ways of encoding RGB information. Our images will be read in BGR (Blue-Green-Red), because of OpenCV defaults. For each of these color-spaces there is a mapping function and they can be found at OpenCV cvtColor documentation.
One important point is: OpenCV imshow() function will always assume that the Mat shown is in BGR color-space. Which means, we will always need to convert back to see what we want. Let’s start.

OpenCV Program: Split Channels (356 downloads )

HSV

While in BGR, an image is treated as an additive result of three base colors (blue, green and red), HSV stands for Hue, Saturation and Value (Brightness). We can say that HSV is a rearrangement of RGB in a cylindrical shape. The HSV ranges are:

  • 0 > H > 360 ⇒ OpenCV range = H/2 (0 > H > 180)
  • 0 > S > 1 ⇒ OpenCV range = 255*S (0 > S > 255)
  • 0 > V > 1 ⇒ OpenCV range = 255*V (0 > V > 255)

YCrCb or YCbCr

It is used widely in video and image compression schemes. The YCrCb stands for Luminance (sometimes you can see Y’ as luma), Red-difference and Blue-difference chroma components. The YCrCb ranges are:

  • 0 > Y > 255
  • 0 > Cr > 255
  • 0 > Cb > 255

L*a*b

In this color-opponent space, L stands for the Luminance dimension, while a and b are the color-opponent dimensions. The Lab ranges are:

  • 0 > L > 100 ⇒ OpenCV range = L*255/100 (1 > L > 255)
  • -127 > a > 127 ⇒ OpenCV range = a + 128 (1 > a > 255)
  • -127 > b > 127 ⇒ OpenCV range = b + 128 (1 > b > 255)

Splitting channels

All the color-spaces mentioned above were constructed using three channels (dimensions). It is a good exercise to visualize each of these channels and realize what they really store, because when I say that the third channel of HSV stores the brightness, what do you expect to see? Remember: a colored image is made of three-channels (in our cases) and when we see each of them separately, what do you think the output will be? If you said a grayscale image, you are correct! However, you might have seen these channels as colored images out there. So, how? For that, we need to choose a fixed value for the other two channels. Let’s do this!
To visualize each channel with color, I used the same values used on the Slides 53 to 65 from CS143, Lecture 03 from Brown University.

RGB or BGR

Original image (a) and its channels with color: blue (b), green (c) and red (d). On the second row, each channel in grayscale (single channel image), respectively.

HSV

Original image (a) and its channels with color: hue (b), saturation (c) and value or brightness (d). On the second row, each channel in grayscale (single channel image), respectively.

YCrCb or YCbCr

Original image (a) and its channels with color: luminance (b), red-difference (c) and blue difference (d). On the second row, each channel in grayscale (single channel image), respectively.

Lab or CIE Lab

Original image (a) and its channels with color: luminance (b), a-dimension (c) and b-dimension (d). On the second row, each channel in grayscale (single channel image), respectively.

Posted in Computer Vision, GPU (CUDA), OpenCV, OpenCV, OpenCV Tutorial | Tagged: , , | Leave a Comment »

Bulk Rename Utility

Posted by Hemprasad Y. Badgujar on July 18, 2015


These file rename software let you rename multiple files easily. All these file rename software are completely free and can be downloaded to Windows PC. These file rename softwareoffer various features, like: rename multiple files at once,rename files as well as folders including sub-folders, can add, remove, replace strings to file names, can copy and rename, move and rename files, supports all types of files (including images, audio/video, office documents etc.), rename files based upon their EXIF data or meta data, and more. Check out this list of free file rename software and find out which you like best.

File Renamer Basic

File Renamer Basic is a simple yet powerful program to rename files, folders, and MP3 files easily. You can use its filename filter to easily narrow down your search for specific types of files. You can remove x number of characters starting from x character. You can find and replace text also. Apart from its renaming capabilities, it also has a ID3v1 and ID3v2 tag editor.

Home Page     Download Page

Flexible Renamer

Flexible Renamer is a free and easy to use software for renaming files and folders. You can rename files and folders in single or in batches. It doesn’t require installation as it is a portable application. You can use its simple or advanced rename method to rename your files and folders. You can copy and rename, move and rename, move to recycle bin and can use other various methods too. It supports wildcards also when renaming.

Home Page     Download Page

Advanced Renamer

Advanced Renamer is a free software for renaming files or folders. It uses various methods for creating the new names. It can create new file names by adding, removing, replacing, giving new name based upon the file information, or changing case. You can test the batch settings before you start renaming. It is also available in portable version.

Home Page     Download Page

BatchRename Free Edition

BatchRename Free is a free files and folders renaming software. It uses two steps to rename files and folders. In step one you can add files and folders to rename and in second step you can set rules for renaming according to your requirements. It has various predefined rules for various types of files. It has some image editing features also, like change format, flip, rotate, resize, shrink etc. You can preview renaming. It installs and uninstalls easily.

Home Page     Download Page

Bulk Rename Utility


Bulk Rename Utility is a free utility to rename files and folders with flexible criteria. It can process sub folders, can add date stamps, auto numbers, search and replace, change time stamps etc. It offers 13 primary functions to rename. It can handle file attributes, metadata, and sophisticated regular expressions. You can preview file names before you actually start renaming. This software is for power users.

Home Page     Download Page

Batch File Modifier

Batch File Modifier is a multipurpose software and it also has the functionality of renaming files and folders. It has a wizard like interface. You can set the naming options from the options window and can use the various tabs according to your requirement of renaming. You can add prefix or suffix to file names. You can preview file names also in this window. You can undo the rename process also.

Home Page     Download Page

XnView


XnView is actually a multi format graphics browser, viewer, and converter, but it also has the functionality of renaming files. It has an Explorer like interface. You can browse for folder whose files have to be renamed and select the files to be renamed. Select the batch rename option from the context menu. Set the rename options from the interface according to your choice. You can view the new name of files in real time. On satisfying the new names start the rename process by clicking on Rename button.

Home Page     Download Page

ReNamer

ReNamer is a simple file renaming tool. It lets you rename files and folders according to standard renaming procedures, including case changes, prefixes, suffixes, replacements, adding number sequences etc. Also supports changing of file extensions. You can add the rules before you start renaming. This software is for beginners as well as for advance users.

Home Page     Download Page

IrfanView

IrfanView is a simple, small, fast, compact and innovative free graphic viewer software and also has the functionality of renaming files. You can use it to rename files from any specified folder and its subfolders. You can set the rename options before you start renaming. You can also preview the batch rename results. You can see the errors and warnings in the preview mode. It is a very simple and easy to use software to rename the files.

Home Page     Download Page

Rename It

Rename It is a simple file renaming utility specifically designed for new computer users. It lets you rename a file or a file extension easily. It has an option of massive rename which lets you rename multiple files or extensions easily. If there is a common text in the name of files, it can be easily renamed with the help of it.

Home Page     Download Page

Effective File Search

Effective File Search is actually a file searching utility and also has a function of renaming files. You can use it to rename the filenames to either lowercase or uppercase only. To use it, first browse for a folder from which files have to be renamed by using its browse button. You can include sub directories also in the search. Now search for all files or for any particular format. Select the files from the results and select rename files options from the Actions menu.

Home Page     Download Page

Ken Rename

Ken Rename is a free batch file renaming utility. It has various configuration options to rename files. Some of its features include: filter files with wildcard, convert to lowercase or uppercase, replace particular text from names, insert digit and increment options, EXIF support etc. You can view the real time preview of renamed files before actually renaming. It is for beginners as well as for advance users.

Home Page     Download Page

PhotoRenamer

PhotoRenamer is a free software which lets you rename your digital photos according to the date and the time you took the pictures. It uses date and time or EXIF Data for renaming or you can use renaming masks. Renaming masks are format specifications stings for e.g. day, month, year, hour, min, sec, photo number and free text. Note: If you choose file selection filter as ., then you can rename any type of file according to renaming mask you use.

Home Page     Download Page

Image Renaming

Image Renaming is a free software to rename image files. You can rename image files based on date and time criteria. You can choose from various predefined formats or can customize your own. It comes as a ZIP file and you can extract it to the desired location and run it. It doesn’t require installation and can be used as a portable software. It is very small in size.

Home Page     Download Page

Panda Batch File Renamer

Panda Batch File Renamer is a free file renaming software. It lets you rename files in batch mode. You can choose from various rename options. You can use its insert, replace, remove, and other categories of renaming options. It shows the current file name and final file names side by side. You can add multiple renaming options and they can be queued. It stores the history of changes so you can undo the rename process if required.

Home Page     Download Page

Aoao Batch Rename

Aoao Batch Rename is free and easy to use file renaming software. You can rename multiple files at once. You can rename all file formats. It is good for renaming image files. You can set the file names with increasing alphabet or digit. This software can be used for simple renaming tasks.

Home Page     Download Page

RenPhoric

RenPhoric is a simple and easy to use batch renaming software. It is good for search and replace text in the file names. You can include subdirectories too for renaming files. It allows you to use regular expressions for renaming process. It is a great choice for you to batch rename images, songs, or any other files that are big in numbers.

Home Page     Download Page

Rename JPEG Files

Rename JPEG Files is a free software to rename JPG files in bulk quantity. It uses predefined file naming formats. You can drag and drop files to its window or specify a target directory that contains JPG files. It also displays the information about JPG files selected, such as name, creation date, resolution etc. It shows the file names before and after side by side. You can build the name format or use the default format.

Home Page     Download Page

File Renamer

File Renamer is a free and handy software to rename multiple files at once. You can batch rename files, add or remove text strings from file names, can change file extensions, add numbers sequentially to file names, change to upper case or lowercase, trim characters etc. It also has an undo option for last rename process. It doesn’t require installation and can be used as a portable software.

Home Page     Download Page

FMS File Renamer

FMS File Renamer is a simple and useful tool to rename files. It has various features to rename files. You can try various combinations for renaming the files. You can add strings to prefix, suffix, or at a position you choose in the resultant file names. You can delete, replace, change case (upper of lower), move/copy etc. in one go. You can preview every step by clicking green check mark. The program is suitable for any type of user (newbie or advance).

Home Page     Download Page

Rename Master

Rename Master is a free software to rename multiple files with few clicks. It is a simple tool to rename multiple files easily. It has 15 types of rename options and you can configure each of them separately. It lets you add, remove, or replace strings to file names easily. You can rename folders too with this utility. It also supports scripts to save the renaming options. It doesn’t require installation.

Home Page     Download Page

Batch Rename .EXE

Batch Rename .EXE is a free software to rename multiple files at once. It can rename files in four easy steps in a wizard like interface. You can add files or folders to rename in step one. In step two set the rules for renaming. You can preview the results in the step three and finally rename them in step four. It can include the metadata in the names of files for renaming.

Home Page     Download Page

A.F.5 Rename your files

A.F.5 Rename your files is a free software to rename files easily. It has various features including drag & drop support, preview before renaming, undo last rename action, create batch program files, save rename settings, import filenames from a text file. You can apply multiple types of values to the file names for renaming like text string, size, digit counter, metadata etc. You can undo the last rename changes also by clicking again on rename button.

Home Page     Download Page

File Renamer

File Renamer is a free software for renaming multiple files at once. It can be used to rename images as well as all types of files. You can use file mask to filter files of specific type (for e.g. *.png). You can set the new name with incremental digit. It also has an option to move the renamed files to a different folder.

Home Page     Download Page

Fast File Renamer

Fast File Renamer is a free software to rename files based upon criteria you choose. You can replace, remove, or insert strings to file names. It has a simulate function which lets you preview the files before you actually rename. When satisfied with the new name, click undo simulate button and click perform rename button to rename files. It can be used as portable software.

Home Page     Download Page

Lupas Rename

Lupas Rename is a free and easy to use software to rename multiple files. You can rename folders too. Files in the sub directories can also be renamed. It also supports undo last rename operation. You can filter files for any particular type using wildcards. You can apply multiple options together (name, extension, and auto number) in the rename process. It shows the real time preview of results.

Home Page     Download Page

Wild Rename

Wild Rename is a very simple and easy to use file renaming utility. You can perform the task of renaming files with regular expressions. It doesn’t require installation and can be used as a portable software. It can help you to rename file names by converting lower case, upper case, or normal case. You can add strings to file names, replace specific text from file names, add counters etc.

Home Page     Download Page

Siren

Siren is a free, small but powerful renaming tool for Windows. It is for normal users as well as for power users. You can use it to rename multiple files and folders. It uses expressions for renaming process. You can build your own customized naming expression by using help. It doesn’t require installation and can be used as a portable software.

Home Page     Download Page

MP3 Rename

MP3 Rename is a free utility to rename MP3 files easily. It can rename MP3 files according to rules that you specify. You can replace the text with your text from the names of MP3 files. It doesn’t require installation and can be used as a portable software. You can add ID3 v2 tags to file names. You can move files into folders according to artist name also. It is a good software to rename MP3 files.

Home Page     Download Page

Ant Renamer

Ant Renamer is a very useful multiple files and folders renaming software. It can rename multiple files, folders with sub-folders and sub-files. It can also rename multiple strings from the file and folder name. Actually, this software provides dozens of file renaming features, some of them are: Move string, String insertion, Change case, Use date & time, Enumeration, etc. This small size portable software is one of the best file renaming software.

Home Page     Download Page

AS-File Renamer

AS-File Renamer is a free software for renaming files. It renames files by providing serial numbers to them. Suppose you capture a snapshot with your camera. Then you can rename the snapshots as abc 1, abc 2, abc 3. If you want to rename your files according to serial numbers then you can try out this freeware.

Home Page     Download Page

LeCase

LeCase is a free and handy file renamer software for your computer. With the help of this freeware you can easily rename all files in a particular directory to lowercase names or uppercase names. By using this freeware you can also rename your picture files in a directory by specifying various numbers to it. e.g x1, x2, x3 etc.

Home Page     Download Page

File Renamex

File Renamex is a free file renamer software to rename files quickly. With the help of this freeware you can rename files in a easy manner. You can rename any type of file e.g. video, audio, picture, document etc. This freeware lets you do file renaming in bulk. It will rename files as per numbering format and prefix.

Home Page     Download Page

KuKnet FileRenamer

KuKnet FileRenamer is a free software for renaming multiple files. It is a powerful tool for renaming files. You can add files or folders by click of a button or by drag and drop to its window. It shows the preview of image files. You can set rules for renaming files and can save them for future use. You can use search and replace, numeration, add file size, date/time, ID3 tag etc. to rename file names. It comes as a single executable and doesn’t require installation.

Home Page     Download Page

EXIF Image Renamer

EXIF Image Renamer is a simple tool for renaming image files based upon their EXIF data. You can select the folder with images to rename by browsing for its location through the program interface. It does not have preview facility so new file names will change according to EXIF data present. It renames the images in sub folders too.

Home Page     Download Page

Batch Rename

Batch Rename is an easy to use but powerful renaming tool for Windows. It lets you rename files and folders according to the rules you set. You can add single rule or combine multiple rules for renaming. For e.g. you can prefix or suffix any text to file names, add counter at specific position, remove strings etc. to the file names. You can also preview the file names before renaming.

Home Page     Download Page

MP3 Renamer

MP3 Renamer is a free tool for renaming large amount of MP3 files. It has various predefined presets for renaming MP3 files like remove extra hyphens, change to sentence case, remove URLs, remove dots, change to upper case etc. You can rename MP3 files based upon their ID3 tags values also. It has a inbuilt MP3 player also.

Home Page     Download Page

Tiny Renamer

Tiny Renamer is a very small and easy to use file renaming utility. You can rename multiple files easily. You can shorten long file names, use simple regular expression or advance regular expression for renaming. You can rename file extension too with the help of it. It has a replace and replace with text box in its main window. It is a good choice for renaming multiple MP3 files.

Home Page     Download Page

JFRenamer

JFRenamer is a free file and folder renaming software. It lets you rename the files and folders according to rules you set. You can add multiple rules to the list for renaming. You can configure each rule separately according to the requirement. You can set various rules like change case, replace, delete, insert, if/else etc. The software is written in JAVA and JAVA must be installed on the system to use it.

Home Page     Download Page

Bica File Renamer

Bica File Renamer is a simple and easy to use file renaming utility. It lets you rename files and folders with few clicks. You can apply many different rename options like search and replace, change case, sequential numbering, insert, remove, date/time etc. It is small in size and doesn’t require installation. You can use it as a portable software too.

Home Page     Download Page

Infinite Dreamers FileRenamer

Infinite Dreamers FileRenamer is a free software to rename multiple files at once. To rename files you have to navigate to the directory whose files you want to rename. You can select all files at once from any directory using context menu. You can replace old name containing text string with new text string easily. You can add multiple replace strings simultaneously.

Home Page     Download Page

Rename Us Pro

Rename Us Pro is a free file renaming utility for Windows. It lets you rename files in batch mode. You can set various options for renaming. You can add multiple rules for renaming like change case, enumeration, adding prefix or suffix to file names, using MP3 tags, file date etc. You can run it in the test mode to check the results before actually renaming.

Home Page     Download Page

Renamer

Renamer is a free and simple file renaming software for Windows. It is very tiny in size but a useful file renaming tool. It has various functions to rename files. You can use its replace with space, search and replace, line by line replace, insert text at position, remove text by position and other various functions to rename files.

Home Page     Download Page

UltimateReNamerJG

UltimateReNamerJG is a small, simple, and easy to use rename tool for Windows. It lets you batch rename multiple files at once. You can add multiple rules for renaming. With the help of it you can insert, delete, replace text strings from file names, can change extension, can change case, set incremental digits to specific position etc. It has a restore backup option if you accidently change file names.

Home Page     Download Page

FileNameStringReplacer

FileNameStringReplacer is simple file renaming utility. It lets you find and replace specific text string from file names. It doesn’t require installation and can be used as a portable software. You can select the folder whose files have to be renamed from the select button. Set the search string to find in file names and type the replace with string to start renaming. It is easy to use software.

Home Page     Download Page

RKrenamer

RKrenamer is a simple tool for renaming multiple files at once. You can rename large number of files in one go. You can insert text strings in file names, replace text, delete text, change case (upper/lower) or serialize the files. It also supports drag and drop feature. It has a simple and easy to use user interface.

Home Page     Download Page

Personal Renamer

Personal Renamer is a free renaming tool for Windows. It lets you rename multiple files in a folder easily. It is a powerful batch file renamer and supports numbering or lettering files etc. You have to set the source and destination directory (both can be same) before you start renaming. You can set the various renaming rules in the advanced menu. You can undo the rename mistakes too.

Home Page     Download Page

RenameApp

RenameApp is a free and easy to use file renaming software for Windows. It lets you easily rename files based upon the specified criteria and order. It supports drag and drop feature. You can preview rename results before you actually start the renaming process. You can add prefix or suffix to the file names, use specific names, can rename file extension etc.

Home Page     Download Page

SolidRenamer

SolidRenamer is a free and easy to use file renaming software for Windows. It lets you rename files easily. It supports various rules for renaming files including prefixes, suffixes, inserting of text, clipping, replace text, change case, enumerations etc. You can set multiple rules for renaming in a sequence. It also has a preview facility before actually starting renaming process.

Home Page     Download Page

File Batch Renamer

File Batch Renamer is a file renaming tool available free. You can rename multiple files or multiple types at once. You have to choose a common name, numbering style and separator to start renaming. You can select the output folder same or different from the source. It doesn’t have many options and is a simple file renaming tool.

Home Page     Download Page

LuJoSoft Rename-All

LuJoSoft Rename-All is a simple and easy to use application to rename files. Some of its features includes add text to file names, remove text from file names, replace text, change case as uppercase or lowercase, capitalize each word etc. It has a preview option also. It shows the renamed files and original file names side by side.

Home Page     Download Page

PSRenamer

PSRenamer is an open source program to rename files in batch mode. It lets you change any part of file name or its extension. You can add sequential numbers to file names. It has preview and undo functions also. As it is a JAR file and JAVA must be installed on the system to use it. It is small in size and can be used as a portable software.

Home Page     Download Page

Daanav File Renamer

Daanav File Renamer is a free software to rename multiple files at once. It lets you rename various files with one click. You can find and replace text in the filenames, add incremental numbers, remove characters up to length you specify, change case (upper or lower) etc. to the file names. It is easy to use and has a user friendly interface.

Home Page     Download Page

Posted in Computer Research, Computer Softwares, Entertainment | Tagged: , , | Leave a Comment »

OpenCV CUDA Sample Program

Posted by Hemprasad Y. Badgujar on July 17, 2015


Design considerations

OpenCV GPU module is written using CUDA, therefore it benefits from the CUDA ecosystem. There is a large community, conferences, publications, many tools and libraries developed such as NVIDIA NPP, CUFFT, Thrust.

The GPU module is designed as host API extension. This design provides the user an explicit control on how data is moved between CPU and GPU memory. Although the user has to write some additional code to start using the GPU, this approach is both flexible and allows more efficient computations.

GPU modules includes class cv::gpu::GpuMat which is a primary container for data kept in GPU memory. It’s interface is very similar with cv::Mat, its CPU counterpart. All GPU functions receive GpuMat as input and output arguments. This allows to invoke several GPU algorithms without downloading data. GPU module API interface is also kept similar with CPU interface where possible. So developers who are familiar with Opencv on CPU could start using GPU straightaway.

Short sample

In the sample below an image is loaded from png0file, next it is uploaded to GPU, thresholded, downloaded and displayed.

#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/gpu/gpu.hpp"

int main (int argc, char* argv[])
{
    try
    {
        cv::Mat src_host = cv::imread("file.png", CV_LOAD_IMAGE_GRAYSCALE);
        cv::gpu::GpuMat dst, src;
        src.upload(src_host);

        cv::gpu::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);

        cv::Mat result_host = dst;
        cv::imshow("Result", result_host);
        cv::waitKey();
    }
    catch(const cv::Exception& ex)
    {
        std::cout << "Error: " << ex.what() << std::endl;
    }
    return 0;
}

Posted in Mixed | Tagged: , , , | Leave a Comment »

OpenCV on CUDA Performance Comparison

Posted by Hemprasad Y. Badgujar on July 17, 2015


Performance Table

For where i work, i had to test a lot of different GPU’s with come OpenCV GPU CUDA C++ functions, the GPU’s will end up in some rackservers. Anyhow, i tested some functions. You can press the figure to get a link to the performance table that is hosted with Google Docs.

Models tested

Computing Model Cuda V. Cores Frequency [MHz] Speedup (avg.)
Intel i2600K ~ 4 3400 1
Intel Xeon E5620 ~ 4 2400 0.68x
NVIDIA GTX 560 ASUS 2.1 336 810 22.4x
NVIDIA GTX 570 EVGA 2.1 480 810 31.9x
NVIDIA GTX 670 EVGA 3.0 1344 950 34.96x
NVIDIA GTX 680 EVGA 3.0 1536 1058 34.90x

*I used Ubuntu 12.04, CUDA 4.2, Opencv 2.4 C++ (latest svn snapshot), NVIDIA 295.51 driver.

Functions tested

matchTemplate, minMaxLoc, remap, dft, cornerHarris, integral, norm, meanShift, BruteForceMatcher, magnitude, add, log, mulSpectrums, resize, cvtColor, erode, threshold, pow, projectPoints, solvePnPRansac, GaussianBlur, filter2D, pyrDown, pyrUp, equializeHist, reduce.

Graphs Per Function

Test Setup

Conclusion

In terms of value for money, the GTX 670 (€400) with 2Gb of RAM is very nice. There is absolutely no reason to buy the GTX 680 since it costs € 100 more. Then again, the GTX 570 costs €300, which is nice, but only has 1,25Gb RAM, which can be dangerous when working with large images (nasty errors).
It is clear that GPU computation is BLOODY fast. But i HAVE to note, that only a SINGLE core of the CPU’s were used for the normal CPU functions. These algo’s have not really been optimized for multithreaded if I’m not mistaken. On the other hand, speed increases of >20x is too much for any intel CPU to catch up with. GPU Computing is a must if fast image processing is important.

GPU + GPU = Multi GPU

Multi GPU? Yes! Using 2xGTX670’s, you can use 2688 CORES. That means that if you don’t keep your GPU’s on a leash it might become self aware. You have been warned.
Oh yes, MULTI GPU! OpenCV only natively supports 1 GPU per function, but ofcourse you can use more if you want. OpenCV themselves suggest Intel’s TBB (thread building blocks) for some reason. OpenCV once started with OpenMP (open source parallel/multithread processing), but do not support that any more. Luckily, If you know your way around OpenMP, it is quite easy to implement.
You can use more GPU’s in OpenCV, there are some functions wich you can use with it. I tend to use OpenMP, make a simple parallel loop with some conditions, and within the thread just use the “gpu::setDevice” C++ function to set which device to use within that thread. For example, when you have two GPU’s, it is a good idea to let OpenMP set “num_threads(2)”, so each GPU has got its own thread, and with the setDevice function, you just use ‘gpu::setDevice(omp_get_thread)’ for example. I got a speed increase of 40~80% using 2 GPU’s, see the nice setup i had in my desktop where i tried it. It will eventually end up in the rackserver, purely for GPU computation, for which they are ideal.

Code for Multi-GPU in OpenCV with OpenMP

  1. bool useMGPU=true;
  2. bool useMP=true;
  3. int numGPUs=gpu::getCudaEnabledDeviceCount();
  4. omp_set_nested(1); //Turn on nested MP (to use parallel loops in your loop)
  5. #pragma omp parallel if (useMP) num_threads(2)
  6. {
  7. #pragma omp for
  8. for (int i=0;i<10;i++){
  9.    //If Multiple GPU support is on, assign based on threadnr
  10.    int threadID = omp_get_thread_num();
  11.    if (useMGPU && numGPUs>1){
  12.        cout << "Setting GPU#" << threadID << " for i#" << i << endl;
  13.        gpu::setDevice(threadID);
  14.    }
  15.    //Your GPU code here. The device has been set
  16. 
    
  17.    //..
  18. 
    
  19.    //Test to see if the GPU has been properly set throughout the loop (device should be == threadID)
  20.    if (useMGPU){
  21.        cout << " Had set GPU#" << gpu::getDevice() << " with tID#" << threadID << " (i#" << i << ")" << endl;
  22.    }
  23. }
  24. }

Posted in Mixed | Tagged: | Leave a Comment »

Open road databases for lane tracking and vehicle detection

Posted by Hemprasad Y. Badgujar on May 16, 2015


“free” for a researcher willing to test his own algorithms of lane tracking or vehicle detection.

Although it is quite easy to find webpages with huge databases with images of vehicles, it is not so easy to find sites where there are videos of the road ahead captured with a camera installed in a vehicle.

We finally found some, which include in some cases the original videos and the videos with the overimposed detection of vehicles, pedestrians and things like that.

Here you are the list with the links and a short description of the owner:

Thanks to the researchers that share their databases! You support the whole research community with your effort!!

Posted in Computer Vision, OpenCV, Project Related | Tagged: , , , , , | Leave a Comment »

The conversion and copy CvMat, Mat and between IplImage

Posted by Hemprasad Y. Badgujar on May 15, 2015


The conversion and copy CvMat, Mat and between IplImage

In OpenCV Mat, CvMat and IplImage types can represent and display the image. IplImage derived from the CvMat, and CvMat that is derived from the CvArr CvArr -> CvMat -> IplImage, Mat type is a C ++ version of the matrix type (CvArr used as a function of the parameters, either passed or are CvMat IplImage, inside it is by CvMat deal with).

Mat type which focuses on computing, mathematics higher, OpenCV Mat ​​type of calculation is also optimized; while CvMat and IplImage type is more focused on the “image”, OpenCV on which the image manipulation (zoom, single extraction, image thresholding operation, etc.) were optimized.Many times the need for mutual conversion of three types, here a brief overview.

Conversion and copy
CvMat and between Mat

1 replication between CvMat,

  1. // Note: deep copy – separately allocated space, two independent
  2. CvMat* a;
  3. CvMat* b = cvCloneMat(a);   //copy a to b

2 Copy between Mat,

  1. // Note: shallow copy – not just copy the data to create a matrix head, data sharing (change a, b, c of the same effect will be on any one of the other two production)
  2. Mat a;
  3. Mat b = a; //a “copy” to b
  4. Mat c(a); //a “copy” to c
  5. // Note: deep copy
  6. Mat a;
  7. Mat b = a.clone(); //a copy to b
  8. Mat c;
  9. a.copyTo(c); //a copy to c

3, CvMat turn Mat

  1. // Use the constructor Mat: Mat :: Mat (const CvMat * m, bool copyData = false); copyData default is false
  2. CvMat* a;
  3. // Note: the following three consistent results, are shallow copy
  4. Mat b(a);   //a “copy” to b
  5. Mat b(a, false);    //a “copy” to b
  6. Mat b = a;  //a “copy” to b
  7. // Note: When the parameter copyData set to true, it was a deep copy (copying the entire image data)
  8. Mat b = Mat(a, true); //a copy to b

4, Mat turn CvMat

  1. // Note: shallow copy
  2. Mat a;
  3. CvMat b = a; //a “copy” to b
  4. // Note: deep copy
  5. Mat a;
  6. CvMat *b;
  7. CvMat temp = a;  // into CvMat type, instead of copying data
  8. CVCopy  (& temp, b);  // true copy data

Conversion and copy ================ ======================== IplImage above between the two ======== 1. Copy IplImage between this does not go into details, that is cvCopy use with cvCloneImage difference, Zhang posted online map:

2, IplImage turn Mat

  1. // Use the constructor Mat: Mat :: Mat (const IplImage * img, bool copyData = false); default is false copyData
  2. IplImage* srcImg = cvLoadImage(“Lena.jpg”);
  3. // Note: the following three consistent results, are shallow copy
  4. Mat M(srcImg);
  5. Mat M(srcImg, false);
  6. Mat M = srcImg;
  7. // Note: When the parameter copyData set to true, it was a deep copy (copying the entire image data)
  8. Mat M(srcImg, true);

3, Mat turn IplImage

  1. // Note: shallow copy – again, just to create an image first, but not to copy data
  2. Mat M;
  3. IplImage img = M;
  4. IplImage img = IplImage(M);

4, IplImage turn CvMat

  1. // Method a: cvGetMat function
  2. IplImage* img;
  3. CvMat temp;
  4. CvMat* mat = cvGetMat(img, &temp);  //深拷贝
  5. // Act II: cvConvert function
  6. CvMat *mat = cvCreateMat(img->height, img->width, CV_64FC3);  //注意height和width的顺序
  7. cvConvert (img, mat);     // a deep copy

5, CvMat turn IplImage

  1. // Method a: cvGetImage function
  2. CvMat M;
  3. IplImage* img = cvCreateImageHeader(M.size(), M.depth(), M.channels());
  4. cvGetImage (& M, img);     // a deep copy: The function returns img
  5. // Also be written as
  6. CvMat M;
  7. IplImage* img = cvGetImage(&M, cvCreateImageHeader(M.size(), M.depth(), M.channels()));
  8. // Act II: cvConvert function
  9. CvMat M;
  10. IplImage* img = cvCreateImage(M.size(), M.depth(), M.channels());
  11. cvConvert (& M, img);  // a deep copy

 

A final note:

1, Mat type is automatic memory management, no explicit release (of course, you can also call the manual release () method to force Mat matrix data release); and CvMat you need to call cvReleaseMat (& cvmat) to release, IplImage call cvReleaseImage (& iplimage) to release.
2, the establishment of CvMat matrix, the first parameter is the number of rows, the second parameter is the number of columns: CvMat * cvCreateMat (int rows, int cols, int type); 3, when establishing IplImage image, CvSize first parameter width, namely the number of columns; the second argument is the height of that line number: IplImage * cvCreateImage (CvSize size, int depth, int channels); CvSize CvSize (int width, int height); 4, IplImage internal buffer per line is by 4 byte alignment, CvMat not have this limitation.

Posted in OpenCV, OpenCV Tutorial | Tagged: , | Leave a Comment »

Setting Up Git on Windows in Four Easy Steps

Posted by Hemprasad Y. Badgujar on May 6, 2015


Introduction

Setting up Git can be intimidating, especially for those that are trying a version control system for the first time or moving from Subversion. It used to be the case that Git was a huge hassle to install and use on Windows. However, nowadays it’s super easy to use Git on Windows either through Git Bash, if you’re a fan of the command line, or if you prefer a graphical interface, through programs like TortoiseGit. Below we’ll show you how to set everything up and connect it with Assembla.

Table of Contents

  1. Download and Install Git for Windows
  2. Download and Install TortoiseGit (Optional but recommended for first timers)
  3. Generate SSH keys
  4. Link SSH key with Assembla

Prerequisites

  1. Assembla Git repository – sign up if you haven’t already, Git and all our other project management tools are totally free for teams up to 3 people.
  2. A strong desire to install Git on Windows.
  3. That’s it, let’s go!

1. Download and Install Git for Windows

To get things started, you’ll need to download and install Git for Windows. If you’re unsure of which one to choose, just go with the full installer. After downloading, run the installer.

welcome_Git-setup

If you have PuTTY/TortoiseSVN installed, you may see this screen, otherwise just ignore this. Regardless, use OpenSSH to make things easy.
SSH Executable

From here, the process become quite streamlined. Simply follow the setup steps to ensure optimal settings. We recommend selecting “Use Git Bash only” as it provides an unmodified PATH.

Git_adjustPath

After selecting next, we recommend chosing the option of “Checkout Windows-style, commit Unix-style line endings”. Select next once you have done this.

Git_Configure_LineEndings

Git_Installation_InProgress

Git_Installation_complete

Download and Install TortoiseGit

TortoiseGit is a Windows Shell Interface to Git and based on TortoiseSVN.
This step is optional. If you are comfortable using the command line for interacting with Git, you do not need to install TortoiseGit.

Next up, let’s download and install TortoiseGit. Before you start the installation, please make sure that you choose the right installer for your PC, otherwise the setup will fail.

Tortoise_Git_3

Tortoise_Git_4

Tortoise_Git_5

Tortoise_Git_7
We’ll need to configure TortoiseGit – to do this, right click anywhere on your Desktop, select “TortoiseGit” and then “Settings.”

tortoise8
Find “Git” and then click on “Config” from the menu on the left. Then fill in your Name and Email, making sure to use the same email that you used to sign up for Assembla.

Don’t forget to click OK when you’re done.

tortoise9

Great, now TortoiseGit is all set!

Generate SSH keys

There’s two ways to generate SSH keys:
1. If you installed TortoiseGit, use the method directly below. 2. If you only installed Git on Windows and are not using TortiseGit, jump to the “Git Bash SSH Keys” section.

TortoiseGit SSH Keys

SSH creates a secure connection from your computer to Assembla, making sure that you are who you claim to be so that only authorized persons can commit to your repository. Assembla needs to know your public SSH key to make the secure connection, so let’s fire up Puttygen to generate an SSH key pair.

Start -> Programs -> TortoiseGit -> Puttygen

puttygen1
In Puttygen, first click on the “Generate” button.

puttygen2
Next, you’ll move your mouse around the big gray area under the progress bar to generate randomness for super security.

puttygen3
Once the key is generated, you should copy it onto your clipboard. You’ll use this later to authenticate with Assembla.

puttygen4
Afterwards, choose a memorable password and confirm it. Don’t forget your password!

puttygen5
Lastly, click on the “Save private key” button and save your private key somewhere you’ll remember.

puttygen6

Git Bash SSH Keys

If you did not install TortoiseGit, you’re at the right place! If you did install TortoiseGit, follow the steps above and skip this section.

  • Start up Git Bash: Start -> All Programs -> Git -> Git Bash
  • On the command prompt, type in the following command substituting with the email you used to sign up for Assembla.
  • When it asks you for the file, just hit Enter.
  • Please note that you should definitely enter a passphrase; when you type, nothing will show up. This is normal, don’t worry about it.

ssh-keygen -t rsa -C “me@email.com”

Use Notepad to open up the .ssh/id_rsa.pub file you just generated and copy the all of the contents of that file.

Link Your SSH key with Assembla

Open up your Assembla profile which is where you’ll paste the public key you just copied from the previous step.

key1
Click “Add Key” after you’ve pasted the key into the box. You should see something like the following picture below. If so, congratulations, you’re done with this section!
key2

Posted in Mixed | Tagged: , , , , | Leave a Comment »

Building VTK with Visual Studio 2013

Posted by Hemprasad Y. Badgujar on April 30, 2015


Building VTK5 with Visual Studio

Download

  1. Download VTK 5.10.1 the (VTK-5.10.1.zip) to unzip the file. (C: \ VTK-5.10.1)Http://Www.Vtk.Org/VTK/resources/software.Html#previous
    Https://Github.Com/Kitware/VTK/tree/v5.10.1

CMake

  1. You want to specify the destination of the input destination and solution files of source code.
    • Where is the source code: C:\VTK-5.10.1
    • Where is build the binaries: C:\VTK-5.10.1\build
  2. Press the [Configure] to select the Visual Studio that is the target.
  3. It makes various settings.
    • BUILD_SHAREED_LIBS ☑ (check)
    • BUILD_TESTING ☐ (uncheck)
    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)
  4. Press the [Add Entry] to add the following settings.
    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:

    * Debug string to be added to the file name of the build generated files of the (last).

  5. And output the solution file by pressing the [Generate].

Build

  1. Start Visual Studio with administrative privileges VTK solution file (C: \ VTK-5.10.1 \ build \ VTK.sln) to open.
    (If you do not start with administrator privileges Visual Studio INSTALL to fail.)
  2. It wants to modify the source code.
    • vtkOStreamWrapper.cxx
      60 line

      //VTKOSTREAM_OPERATOR(ostream&);
      vtkOStreamWrapper& vtkOStreamWrapper::operator << (ostream& a) {
        this->ostr << (void *)&a;
        return *this;
      }
      
    • vtkEnSightGoldBinaryReader.cxx
      3925 line

      if (this->IFile->read(result, 80).fail())
      

      3944 line

      if (this->IFile->read(dummy, 8).fail())
      

      4001 line

      if (this->IFile->read(dummy, 4).fail())
      

      4008 line

      if (this->IFile->read((char*)result, sizeof(int)).fail())
      

      4025 line

      if (this->IFile->read(dummy, 4).fail())
      

      4048 line

      if (this->IFile->read(dummy, 4).fail())
      

      4055 line

      if (this->IFile->read((char*)result, sizeof(int)*numInts).fail())
      

      4072 line

      if (this->IFile->read(dummy, 4).fail())
      

      4095 line

      if (this->IFile->read(dummy, 4).fail())
      

      4102 line

      if (this->IFile->read((char*)result, sizeof(float)*numFloats).fail())
      

      4119 line

      if (this->IFile->read(dummy, 4).fail())
      
    • vtkConvexHull2D.cxx
      31 lines

      #include <algorithm>
      
    • vtkAdjacencyMatrixToEdgeTable.cxx
      31 lines

      #include <algorithm>
      
    • vtkNormalizeMatrixVectors.cxx
      30 Line

      #include <algorithm>
      
    • vtkPairwiseExtractHistogram2D.cxx
      39 line

      #include <algorithm>
      
    • vtkControlPointsItem.cxx
      35 lines

      #include <algorithm>
      
    • vtkPiecewisePointHandleItem.cxx
      31 lines

      #include <algorithm>
      
    • vtkParallelCoordinatesRepresentation.cxx
      83 line

      #include <algorithm>
      
  1. It wants to build the VTK. (ALL_BUILD)
    1. The configuration of the solution (Debug, Release) set the.
    2. Choose the ALL_BUILD project from Solution Explorer.
    3. [Build]> to build VTK Press [Build Solution].
  2. It wants to install the VTK. (INSTALL)
    1. Choose the INSTALL project from Solution Explorer.
    2. [Build]> [projects only]> to install the VTK Press [INSTALL only the Build menu.CMAKE_INSTALL_PREFIX necessary files are copied to the specified output destination.

Environment Variable

  1. Environment variable VTK_ROOT create a VTK of path: Set the (C \ Program Files \ VTK).
  2. Environment variable Path I add a% VTK_ROOT% \ bin; to.

Building VTK6 with Visual Studio

Download

  1. Download VTK 6.1.0 the (VTK-6.1.0.zip) to unzip the file. (C: \ VTK-6.1.0)Http://Www.Vtk.Org/VTK/resources/software.Html#latestcand
    Https://Github.Com/Kitware/VTK/tree/v6.1.0

CMake

  1. You want to specify the destination of the input destination and solution files of source code.
    • Where is the source code: C:\VTK-6.1.0
    • Where is build the binaries: C:\VTK-6.1.0\build
  2. Press the [Configure] to select the Visual Studio that is the target.
  3. It makes various settings.
    • BUILD_SHAREED_LIBS ☑ (check)
    • BUILD_TESTING ☐ (uncheck)
    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)
  4. Press the [Add Entry] to add the following settings.
    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:

    * Debug string to be added to the file name of the build generated files of the (last).

  5. And output the solution file by pressing the [Generate].

Build

  1. Start Visual Studio with administrative privileges VTK solution file (C: \ VTK-6.1.0 \ build \ VTK.sln) to open.
    (If you do not start with administrator privileges Visual Studio INSTALL to fail.)
  2. It wants to build the VTK. (ALL_BUILD)
    1. The configuration of the solution (Debug, Release) set the.
    2. Choose the ALL_BUILD project from Solution Explorer.
    3. [Build]> to build VTK Press [Build Solution].
  3. It wants to install the VTK. (INSTALL)
    1. Choose the INSTALL project from Solution Explorer.
    2. [Build]> [projects only]> to install the VTK Press [INSTALL only the Build menu.CMAKE_INSTALL_PREFIX necessary files are copied to the specified output destination.

Environment Variable

  1. Environment variable VTK_DIR create a VTK of path: Set the (C \ Program Files \ VTK).
  2. Environment variable Path I add a% VTK_DIR% \ bin; to.

Building VTK6 + Qt5 with Visual Studio

Download

  1. Download VTK 6.1.0 the (VTK-6.1.0.zip) to unzip the file. (C: \ VTK-6.1.0)Http://Www.Vtk.Org/VTK/resources/software.Html#latestcand
    Https://Github.Com/Kitware/VTK/tree/v6.1.0
  2. Qt 5.4.0 with OpenGLをダウンロード、インストールする。(C:\Qt)
    http://www.qt.io/download-open-source/#

    • Qt 5.4.0 for Windows 32-bit (VS 2013, OpenGL, 694 MB)
      (qt-opensource-windows-x86-msvc2013_opengl-5.4.0.exe)
    • Qt 5.4.0 for Windows 64-bit (VS 2013, OpenGL, 709 MB)
      (qt-opensource-windows-x86-msvc2013_64_opengl-5.4.0.exe)

CMake

  1. You want to specify the destination of the input destination and solution files of source code.
    • Where is the source code: C:\VTK-6.1.0
    • Where is build the binaries: C:\VTK-6.1.0\build
  2. Press the [Configure] to select the Visual Studio that is the target.
  3. It makes various settings.
    (Grouped and helpful to put a check to Advanced.) * Win32 is Msvc2013_opengl , x64 is msvc2013_64_openglspecified in. Ungrouped Entries

    • Qt5Core_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Core
    • Qt5Designer_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Designer
    • Qt5Gui_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Gui
    • Qt5Network_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Network
    • Qt5OpenGL_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5OpenGL
    • Qt5Sql_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Sql
    • Qt5WebKit_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5WebKit
    • Qt5WebKitWidgets_DIRC:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5WebKitWidgets
    • Qt5Widgets_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Widgets
    • Qt5Xml_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Xml

    BUILD

    • BUILD_SHAREED_LIBS ☑ (check)
    • BUILD_TESTING ☐ (uncheck)

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)

    Module

    • Module_vtkGUISupportQt ☑ (check)
    • Module_vtkGUISupportQtOpenGL ☑ (check)
    • Module_vtkGUISupportQtSQL ☑ (check)
    • Module_vtkGUISupportQtWebkit ☑ (check)
    • Module_vtkRenderingQt ☑ (check)
    • Module_vtkViewsQt ☑ (check)

    OPENGL

    • OPENGL_gl_LIBRARY opengl
    • OPENGL_glu_LIBRARY glu32

    QT

    • QT_MKSPECS_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/mkspecs/win32-msvc2013
    • QT_QMAKE_EXECUTABLE C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/bin/qmake.exe
    • QT_QTCORE_LIBRARY_DEBUG C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/Qt5Cored.lib
    • QT_QTCORE_LIBRARY_DEBUG C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/Qt5Core.lib

    VTK

    • VTK_Group_Qt ☑ (check)
    • VTK_INSTALL_QT_PLUGIN_DIR ${CMAKE_INSTALL_PREFIX}/${VTK_INSTALL_QT_DIR}
    • VTK_QT_VERSION 5
  4. Press the [Add Entry] to add the following settings.
    Name: CMAKE_PREFIX_PATH
    Type: PATH
    Value: C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
    (or C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86)
    Description:

    * Windows Kits path if Visual Studio 2013 8.1 \ Lib \ Winv6.3, if Visual Studio 2012 8.0 I specify the \ Lib \ Win8.

    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:

    * Debug string to be added to the file name of the build generated files of the (last).

  5. And output the solution file by pressing the [Generate].

Build

  1. Start Visual Studio with administrative privileges VTK solution file (C: \ VTK-6.1.0 \ build \ VTK.sln) to open.
    (If you do not start with administrator privileges Visual Studio INSTALL to fail.)
  2. It wants to build the VTK. (ALL_BUILD)
    1. The configuration of the solution (Debug, Release) set the.
    2. Choose the ALL_BUILD project from Solution Explorer.
    3. [Build]> to build VTK Press [Build Solution].
  3. It wants to install the VTK. (INSTALL)
    1. Choose the INSTALL project from Solution Explorer.
    2. [Build]> [projects only]> to install the VTK Press [INSTALL only the Build menu.CMAKE_INSTALL_PREFIX necessary files are copied to the specified output destination.

Environment Variable

  1. Environment variable VTK_DIR create a VTK of path: Set the (C \ Program Files \ VTK).
  2. Environment variable QTDIR by creating a Qt of the path (C: \ Qt \ Qt5.4.0 \ 5.4 \ msvc2013_64_opengl \ (or C: \ Qt \ Qt5.4.0 \ 5.4 \ msvc2013_opengl \)) to set.
  3. Environment variable Path in;% VTK_DIR% \ bin;% I add a QTDIR% \ bin.

Posted in CLOUD, Computer Languages, Computer Softwares, Computer Vision, Computing Technology, CUDA, GPU (CUDA), OpenCV | Tagged: , , , | Leave a Comment »

 
ThuyDX

Just another WordPress.com site

josephdung

thoughts...

Algunos Intereses de Abraham Zamudio Chauca

Matematica, Linux , Programacion Serial , Programacion Paralela (CPU - GPU) , Cluster de Computadores , Software Cientifico

Tech_Raj

A great WordPress.com site

Travel tips

Travel tips

Experience the real life.....!!!

Shurwaat achi honi chahiye ...

Ronzii's Blog

Just your average geek's blog

Karan Jitendra Thakkar

Everything I think. Everything I do. Right here.

VentureBeat

News About Tech, Money and Innovation

Chetan Solanki

Helpful to u, if u need it.....

Explorer of Research #HEMBAD

managedCUDA

Explorer of Research #HEMBAD

siddheshsathe

A great WordPress.com site

Ari's

This is My Space so Dont Mess With IT !!

Business India 2.0

All about Business Travel 2.0 ideas,technology,ventures and the capital making its happen

Something More for Research

Explorer of Research #HEMBAD

WordPress.com News

The latest news on WordPress.com and the WordPress community.

Follow

Get every new post delivered to your Inbox.

Join 4,167 other followers

%d bloggers like this: