OpenCV祭り (配布用)
-
Upload
tomoaki0705 -
Category
Engineering
-
view
401 -
download
0
Transcript of OpenCV祭り (配布用)
![Page 2: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/2.jpg)
Mar 5 2011 OpenCV 2
•
• IplImage CvMat, cv::Mat
–
–
–widthStep
–
![Page 3: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/3.jpg)
Mar 5 2011 OpenCV 3
• 2
( - Wikipedia[1] )
[1]http://ja.wikipedia.org/wiki/ Thanks to @yantaka718
![Page 4: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/4.jpg)
Mar 5 2011 OpenCV 4
IplImage CvMat
• IplImage
–
– IPL Intel Performance Library
• Intel
• CvMat
–
•
build/include/opencv2/core/types_c.h
![Page 5: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/5.jpg)
Mar 5 2011 OpenCV 5
IplImage *image;
image = cvCreateImage(cvSize(640, 480), IPL_DEPTH8U, 1);
CvMat *matrix;
Matrix = cvCreateMat(3, 3, CV_32FC1);
cvReleaseImage(&image);
cvReleaseMat(&matrix);
•Create**←→malloc
•Release**←→ free
• malloc free call
core/src/array.cppcore/src/alloc.cpp
![Page 6: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/6.jpg)
Mar 5 2011 OpenCV 6
IPL_DEPTH_** CV_**
CvMatIplImage
CV_USRTYPE1
CV_64F
CV_32F
CV_32S
CV_16S
CV_16U
CV_8S
CV_8U
-
-
IPL_DEPTH_64F
IPL_DEPTH_32F
IPL_DEPTH_32S
IPL_DEPTH_16S
IPL_DEPTH_16U
IPL_DEPTH_8S
IPL_DEPTH_8U
IPL_DEPTH_1U
--
8
4
4
2
2
1
1
1
(64)
(32)
(0x80000020)
(0x80000010)
(16)
(0x80000008)
(8)
(1)
( )
(7)
(6)
(5)
(4)
(3)
(2)
(1)
(0)
( )
build/include/opencv2/core/types_c.h
unsigned char
char
unsigned short
short
int
float
double
![Page 7: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/7.jpg)
Mar 5 2011 OpenCV 7
image = cvCreateImage(cvSize(640, 480), IPL_DEPTH8U, 1);
Matrix = cvCreateMat(3, 3, CV_32FC1);
core/src/array.cpp
![Page 8: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/8.jpg)
Mar 5 2011 OpenCV 8
→
![Page 9: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/9.jpg)
Mar 5 2011 OpenCV 9
IplImage•width•height•depth•nChannels•imageData
CvMat•cols•rows•type•data
![Page 10: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/10.jpg)
Mar 5 2011 OpenCV 10
•
• width height depth
• CvMat/IplImage
•
• width height
IplImage CvMatcvGetMat
cvGetImage
IplImage CvMatcvConvert
cvConvert
core/src/array.cpp
core/src/convert.cpp
IplImage CvMat IplImage CvMat
![Page 11: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/11.jpg)
Mar 5 2011 OpenCV 11
cv::Mat
• OpenCV2.0
• C++
•
•
![Page 12: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/12.jpg)
Mar 5 2011 OpenCV 12
IplImage CvMat
cv::Mat
cvGetMat
cvGetImage
cvConvert
(IplImage) (CvMat)
cvarrToMat cvarrToMat
![Page 13: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/13.jpg)
Mar 5 2011 OpenCV 13
imageData,12
at(), 9
cvGet2D, 4
ptr(), 3
![Page 14: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/14.jpg)
Mar 5 2011 OpenCV 14
736.742
813.947
1133.22
1318.68
77.2042
396.474
581.938
0 200 400 600 800 1000 1200 1400
cvGetReal2D
cvGet2D
Total Access
[ms]
![Page 15: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/15.jpg)
Mar 5 2011 OpenCV 15
(x,y) row,column
x
y
34333231
24232221
14131211
PPPP
PPPP
PPPP
jiP( )yx,
i
j
![Page 16: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/16.jpg)
Mar 5 2011 OpenCV 16
•
•
•
• cvPtr2D
• cvGet2D/cvSet2D
• cvmGet/cvmSet
• cvGetReal2D/cvSetReal2D
• at
core/src/array.cpp
core/src/matrix.cpp
![Page 17: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/17.jpg)
Mar 5 2011 OpenCV 17
CvArr
cvGet2D( const CvArr* arr, int y, int x )
build/include/opencv2/core/types_c.h
core/src/array.cpp
typedef void CvArr
CvMat* IplImage*
dandelion1124
![Page 18: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/18.jpg)
Mar 5 2011 OpenCV 18
width widthStep
•
• 4
• 32
• int nChannels;• int height;• int width;• int widthStep;• int depth;• int origin;• struct _IplROI *roi;• int imageSize;• char *imageData;• char *imageDataOrigin;
![Page 19: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/19.jpg)
Mar 5 2011 OpenCV 19
widthStep (IplImage*)
8U
8U
8U
8U
8U
depth
12333
12434
4131
4414
4111
widthStepwidth
CvMat cv::Mat
![Page 20: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/20.jpg)
Mar 5 2011 OpenCV 20
IplImage CvMat,cv::Mat
![Page 21: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/21.jpg)
Mar 5 2011 OpenCV 21
IplImage *image;
image = cvLoadImage(“lenga.jpg”);
cvShowImage("Test", image);
cvWaitKey(0);
image->width = 101;
cvShowImage("Test", image);
cvWaitKey(0);
![Page 22: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/22.jpg)
Mar 5 2011 OpenCV 22
( 1)
CvMat matrix; IplImage result;
IplImage *image = cvLoadImage(“image.bmp”);
cvGetMat(image, &matrix);
cvGetSubRect(&matrix, &result, cvRect(x, y, w, h));
![Page 23: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/23.jpg)
Mar 5 2011 OpenCV 23
3 3x3
→
n
n
n
nn
nn
y
x
yy
xx
s
ys
xs
s
ys
xs
s
ys
xs
LL
21
21
2
22
22
1
11
11cvConvertPointsHomogeneous
3XN NX3
N=3
![Page 24: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/24.jpg)
Mar 5 2011 OpenCV 24
( 2)
3
3
3
2
2
2
1
1
1
s
y
x
s
y
x
s
y
x 1
N(=3)
3
1x
1y
1s
![Page 25: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/25.jpg)
Mar 5 2011 OpenCV 25
( 3)
CvMat *data = cvCreate….
CvScalar color;
color = cvScalar(220, 165,2);
cvSet1D(data, 0, color);
color = cvScalar(303, 25,1.1);
cvSet1D(data, 1, color);
color = cvScalar(75, 12, 29.2);
cvSet1D(data, 2, color);
double raw_data[] =
{220, 165, 2,
303, 25, 1.1,
75, 12, 29.2};
CvMat data;
data = cvMat(3, 3,
CV_64F,
(void*)raw_data);
![Page 26: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/26.jpg)
Mar 5 2011 OpenCV 26
cvReshape 3 ( 4)
![Page 27: OpenCV祭り (配布用)](https://reader031.fdocuments.net/reader031/viewer/2022021420/58efec3b1a28aba1518b456d/html5/thumbnails/27.jpg)
Mar 5 2011 OpenCV 27
•
•
–
– ITS
– 2010
– Wiki
– http://tessy.org/wiki/