Вы находитесь на странице: 1из 16

/ , OpenCV

3. OpenCV C++: Mat

http://blog.iseesystems.com/wp-content/uploads/2009/07/cube-matrix.jpg

1.
1. 8bit
(/ ).
2. 32
(OpenCV, Photoshop, 3D-).
3. 8
( , , , bmp, jpg, png).
: ,
0..255 - .
.

2.


.
1)
( 8-, 0..255).
,
.
, jpg, png bmp .

2)
( 32- float).
,
.

3.


.

.
:

3,
RGB = Red,

Green,

Blue.

3.
RGB, YUV.
, .
HUI, HSV
, , .
CMYK.

4.
OpenCV
OpenCV 1, 2, 3, 4- .
1- .
2- (
).
:
imshow.
3- .
4- Alpha,
.
: OpenCV Alpha.
, OpenCV 4-
.

OpenCV C++

1. OpenCV C++
Mat -
:

1)
Mat imageEmpty;
2) w x h , 0..255 (8U = unsigned 8 bit),
(C1, .. )
int w=150; int h=100;
Mat imageGray( h, w, CV_8UC1 );
// , w h

3) 1- (32F = float 32 bit)


Mat imageFloat( h, w, CV_32FC1 );
4) 3- 0..255
Mat imageRGB( h, w, CV_8UC3 );

2.
:
OpenCV
, ,
[0,1]. 8-
1.0 / 255.0.
convertTo.
.

imageGray.convertTo( imageFloat, CV_32FC1, 1.0 / 255.0 );


:
OpenCV
. , ,
convertTo .
OpenCV:

imageRGB.convertTo( imageEmpty, CV_32FC3, 1.0 / 255.0 );


( 3- 8- 3 . ,
imageEmpty .)

3.

OpenCV
C++:
1. .
, OpenCV ,
:
Image imageFloat;
imageGray.convertTo( imageFloat, CV_32FC1, 1.0 / 255.0 );
- OpenCV imageFloat.
, ,
.
2. (
std::vector), ,
.

3.

( STL shared_ptr, Java
)
:
void fun() {
Mat A( 100, 100, CV_8UC1 );
// , ,
// .
{
Mat B = A;
// , B
// . , B,
// A. ,
// 2.
}
// B , ,
// 1.
}
A , 0,
,
..

3.

,
, copyTo clone:

image1.copyTo( image2 );
image3 = image1.clone();
:
1) Mat B = A; ,
,
. Mat ,
. Mat (
std::vector).
, , const Mat & .
2)
copyTo() clone().

4.

.
,

.

.
:

Rect rect(0, 0, 100, 100); // x, y, w, h:


Mat subimage = image( rect );
// , ,
//
// :
image( rect ).copyTo( subimage );

5.

OpenCV .
( ),
.
, ,
, OpenCV,
, .
, at. 0...255
:
//

int value = imageGray.at<uchar>(y, x);


//

imageGray.at<uchar>(y, x) = 100;
, x y .

6.

imshow
imshow( image, image );
// image image


.
,
.
:
1. 2- .
2. , float ,
[0,1].
, , .

Вам также может понравиться