This opencv tutorial is about converting an image from one color space to that of the other using cvtcolor:
As the name suggests , cvtcolor converts an image from one color space to another.
As the name suggests , cvtcolor converts an image from one color space to another.
Syntax of the code:
void cvtColor(InputArray
src, OutputArray dst, int code, int dstCn=0 )
where
src   :– input image:
8-bit unsigned, 16-bit unsigned ( CV_16UC... ), or single-precision
floating-point.
dst    :– output
image of the same size and depth as src.
code  :– color space
conversion code (see the description below).
dstCn :– number of
channels in the destination image; if the parameter is 0, the number of the
channels is derived automatically from src and code .
As it has already been
mentioned that the functions converts an image form one color space to another,
there are various types of conversion possible.
| 
Transformation | 
Syntax | 
| 
RGB   GRAY | 
CV_RGB2GRAY | 
| 
BGR   GRAY | 
CV_BGR2GRAY | 
| 
GRAY   RGB | 
CV_GRAY2RGB  | 
| 
GRAY   BGR | 
CV_GRAY2BGR | 
Note:
The
default color format in OpenCV is generally said to as RGB but it is actually
BGR (the bytes are reversed). So the first byte in a standard (24-bit) color
image will be an 8-bit Blue component, the second byte will be Green, and the
third byte will be Red.
Other
Tranformations are:-
| 
Transformation | 
Syntax | 
| 
RGB   YCrCb | 
CV_RGB2YCrCb | 
| 
BGR   YCrCb | 
CV_BGR2YCrCb | 
|  RGB | 
CV_YCrCb2RGB  | 
| 
 YCrCb | 
CV_YCrCb2BGR | 
| 
Transformation | 
Syntax | 
| 
RGB   HSV | 
CV_RGB2HSV | 
| 
BGR   HSV | 
CV_BGR2HSV | 
|  RGB | 
CV_HSV2RGB  | 
|  BGR | 
CV_HSV2BGR | 
| 
Transformation | 
Syntax | 
| 
RGB    | 
CV_RGB2Lab | 
| 
BGR    | 
CV_BGR2Lab | 
| 
CIE L*a*b*    | 
CV_Lab2RGB  | 
| 
CIE L*a*b*    | 
CV_Lab2BGR | 
| 
Transformation | 
Syntax | 
| 
RGB    | 
CV_RGB2Luv | 
| 
BGR    | 
CV_BGR2Luv | 
| 
CIE L*u*v*   | 
CV_Luv2RGB  | 
| 
CIE L*u*v*   | 
CV_Luv2BGR | 
| 
Transformation | 
Syntax | 
| 
RGB    | 
CV_RGB2XYZ | 
| 
BGR    | 
CV_BGR2XYZ | 
| 
CIE XYZ   | 
CV_XYZ2RGB  | 
| 
CIE XYZ   | 
CV_XYZ2BGR | 
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "iostream"
using namespace cv;
int main( )
{
// char* imageName = argv[1];
 Mat image;
 image = imread( "C:\\Users\\arjun\\Desktop\\color-image.png", 1 );
 Mat RGB2GRAY_image;
 cvtColor( image, RGB2GRAY_image, CV_RGB2GRAY );
 Mat BGR2GRAY_image;
 cvtColor( image, BGR2GRAY_image, CV_BGR2GRAY );
 Mat RGB2YCrCb_image;
 cvtColor( image, RGB2YCrCb_image, CV_RGB2YCrCb );
 Mat BGR2YCrCb_image;
 cvtColor( image, BGR2YCrCb_image, CV_BGR2YCrCb );
 Mat RGB2HSV_image;
 cvtColor( image, RGB2HSV_image, CV_RGB2HSV );
 Mat BGR2HSV_image;
 cvtColor( image, BGR2HSV_image, CV_BGR2HSV );
 Mat RGB2Lab_image;
 cvtColor( image, RGB2Lab_image, CV_RGB2Lab );
 Mat BGR2Lab_image;
 cvtColor( image, BGR2Lab_image, CV_BGR2Lab );
 Mat RGB2Luv_image;
 cvtColor( image, RGB2Luv_image, CV_RGB2Luv );
  Mat BGR2Luv_image;
 cvtColor( image, BGR2Luv_image, CV_BGR2Luv );
 Mat RGB2XYZ_image;
 cvtColor( image, RGB2XYZ_image, CV_RGB2XYZ );
 Mat BGR2XYZ_image;
 cvtColor( image, BGR2XYZ_image, CV_BGR2XYZ );
 namedWindow( "original image", CV_WINDOW_AUTOSIZE );
imshow( "original image", image );
namedWindow( "RGB2GRAY image", CV_WINDOW_AUTOSIZE );
imshow( "RGB2GRAY image",RGB2GRAY_image );
imwrite( "C:\\Users\\arjun\\Desktop\\RGB2GRAY.jpg", RGB2GRAY_image );
namedWindow( "BGR2GRAY image", CV_WINDOW_AUTOSIZE );
imshow( "BGR2GRAY image", BGR2GRAY_image );
imwrite( "C:\\Users\\arjun\\Desktop\\BGR2GRAY.jpg", BGR2GRAY_image );
namedWindow( "RGB2YCrCb image", CV_WINDOW_AUTOSIZE );
imshow( "RGB2YCrCb image", RGB2YCrCb_image );
imwrite( "C:\\Users\\arjun\\Desktop\\RGB2YCrCb.jpg", RGB2YCrCb_image );
namedWindow( "BGR2YCrCb image", CV_WINDOW_AUTOSIZE );
imshow( "BGR2YCrCb image", BGR2YCrCb_image );
imwrite( "C:\\Users\\arjun\\Desktop\\BGR2YCrCb.jpg", BGR2YCrCb_image );
namedWindow( "RGB2HSV image", CV_WINDOW_AUTOSIZE );
imshow( "RGB2HSV image", RGB2HSV_image );
imwrite( "C:\\Users\\arjun\\Desktop\\RGB2HSV.jpg", RGB2HSV_image );
namedWindow( "BGR2HSV image", CV_WINDOW_AUTOSIZE );
imshow( "BGR2HSV image", BGR2HSV_image );
imwrite( "C:\\Users\\arjun\\Desktop\\BGR2HSV.jpg", BGR2HSV_image );
namedWindow( "RGB2Lab image", CV_WINDOW_AUTOSIZE );
imshow( "RGB2Lab image", RGB2Lab_image );
imwrite( "C:\\Users\\arjun\\Desktop\\RGB2Lab.jpg", RGB2Lab_image );
namedWindow( "BGR2Lab image", CV_WINDOW_AUTOSIZE );
imshow( "BGR2Lab image", BGR2Lab_image );
imwrite( "C:\\Users\\arjun\\Desktop\\BGR2Lab.jpg", BGR2Lab_image );
namedWindow( "RGB2Luv image", CV_WINDOW_AUTOSIZE );
imshow( "RGB2Luv image", RGB2Luv_image );
imwrite( "C:\\Users\\arjun\\Desktop\\RGB2Luv.jpg", RGB2Luv_image );
namedWindow( "BGR2Luv image", CV_WINDOW_AUTOSIZE );
imshow( "BGR2Luv image", BGR2Luv_image );
imwrite( "C:\\Users\\arjun\\Desktop\\BGR2Luv.jpg", BGR2Luv_image );
namedWindow( "RGB2XYZ image", CV_WINDOW_AUTOSIZE );
imshow( "RGB2XYZ image", RGB2XYZ_image );
imwrite( "C:\\Users\\arjun\\Desktop\\RGB2XYZ.jpg", RGB2XYZ_image );
namedWindow( "BGR2XYZ image", CV_WINDOW_AUTOSIZE );
imshow( "BGR2XYZ image", BGR2XYZ_image );
imwrite( "C:\\Users\\arjun\\Desktop\\BGR2XYZ.jpg", BGR2XYZ_image );
 waitKey(0);
 return 0;
}
RGB2YCrCb:
BGR2YCrCb:
RGB2HSV:
BGR2HSV:
RGB2Lab:
BGR2Lab:
RGB2Luv:
BGR2Luv:
RGB2XYZ:
BGR2XYZ:
Here is the link of the opencv code:
The Bayer pattern is widely used
in CCD and CMOS cameras. It enables you to get color pictures from a single
plane where R,G, and B pixels (sensors of a particular component) are
interleaved.
| 
Transformation | 
Syntax | 
| 
BayerRG    | 
CV_BayerRG2RGB | 
| 
BayerRG   BGR | 
CV_BayerRG2BGR | 
| 
BayerGB   RGB | 
CV_BayerGB2RGB | 
| 
BayerGB    | 
CV_BayerGB2BGR | 
| 
BayerGR   RGB | 
CV_BayerGR2RGB | 
| 
BayerGR    | 
CV_BayerGR2BGR | 
| 
BayerBG   RGB | 
CV_BayerBG2RGB | 
| 
BayerBG    | 
CV_BayerBG2BGR | 













 
No comments:
Post a Comment