Tải bản đầy đủ (.pdf) (163 trang)

biên dịch tài liệu hướng dẫn sử dụng bộ thư viện nguồn mở opencv

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.19 MB, 163 trang )

TRƯỜNG CAO ĐẲNG KỸ
KHOA CÔNG NGH
Đề tài nghiên cứu khoa họ
c sinh viên:
BIÊN DỊ
CH TÀI HƯ
BỘ
THƯ VI
Sinh viên thực hiệ
n: BÙI T
Lớp: 10CDTP1
Người hướng dẫn: NGUY









THUẬT LÝ TỰ TRỌNG TP.HỒ
CHÍ MINH
KHOA CÔNG NGH
Ệ THÔNG TIN

c sinh viên:

CH TÀI HƯ
ỚNG DẪN SỬ DỤNG
THƯ VI


ỆN NGUỒN MỞ OPENCV
n: BÙI T
ẤN AN

N NGỌC TRANG
1
CHÍ MINH

2
Mục lục:

Phần I. Mở đầu… ……………… ……………… ……………… ……………… ……

1. Lý do chọn đề tài… ……………… ……………… ……………… ………… ……
2. Xác định mục tiêu nghiên cứu: … ……………… ………………………… ……

3. Đối tượng nghiên cứu: … ……………… ……………… …………………….……
4. Phạm vi nghiên cứu: … ……………….……………… ……………………….……
5. Đặt giả thuyết: … ……………… ……………… ……………… ……………………
6. Thực trạng và khảo sát về bộ thư viện nguồn mở OpenCV:……… ……
6.1. Thực trạng: … ……………… ……………… ……………… ………… ……
6.2. Khảo sát… ……………… ……………… ……………… …………… ……
Phần II. Quy trình thực hiện… ……………… ……………… …………………

Phần III. Tổng kết… ……………… ……………… ……………… …………….……

1. Hướng phát triển của đề tài: … ……………… ………………………………
2. Kinh nghiệm: … ……………… ……………… ………………………… ……
Tài liệu hướng dẫn sử sụng OpenCV v2.1… ……………… ……
3

3
3
3
4
4
5
5
5
15
16
17
17

19


























Đề tài:
BIÊN DỊ
CH TÀI HƯ
BỘ
THƯ VI
Phần I. Mở đầu:
1. Lý do chọn đề tài:
Tôi r
ất quan tâm tới công nghệ nhận dạng máy tính, công nghệ này rất mới, ứng dụng rộng rãi
trên nhiều ngành khác nhau, đ
ặc biệt là trong lĩnh vực chế tạo robot. Nh
ngu
ồn tài liệu Tiếng Việt về OpenCV hiện nay rất hiếm, phần lớn tài liệu là bằng tiếng Anh,
gây nhiều khó kh
ăn trong cho sinh viên mu
này, mong mu
ốn cung cấp cho các bạn nguồn tài liệu Tiếng Việt, rất mong sẽ giúp ích cho các
bạn.
2. Xác định mục tiêu nghiên cứu:
- Mục tiêu: Đ
ề tài này,tôi sẽ biên dịch tài liệu h

với code mẫu giúp cho ngư
ời học dễ dàng trong cách sử dụng bộ th
- Mục đích: Cung c
ấp nguồn tài liệu tiếng Việt cho sinh viên Việt Nam tham khảo, học tập,
nghiên c
ứu lập trình dễ dàng trên bộ th
3. Đối tượng nghiên cứu:
- Đối tượng nghiên cứu: Bộ thư vi
ện OpenCV
- Khách th
ể nghiên cứu: Sinh viên ngành Công nghệ thông tin,
muốn học tập, nghiên cứu bộ thư vi
ện này.
CH TÀI HƯ
ỚNG DẪN SỬ DỤNG
THƯ VI
ỆN NGUỒN MỞ OPENCV

ất quan tâm tới công nghệ nhận dạng máy tính, công nghệ này rất mới, ứng dụng rộng rãi
ặc biệt là trong lĩnh vực chế tạo robot. Nh
ưng vi
ệc tìm kiếm
ồn tài liệu Tiếng Việt về OpenCV hiện nay rất hiếm, phần lớn tài liệu là bằng tiếng Anh,
ăn trong cho sinh viên mu
ốn học hoặc ứng dụng. Vì lí do trên tôi chọn
ốn cung cấp cho các bạn nguồn tài liệu Tiếng Việt, rất mong sẽ giúp ích cho các
ề tài này,tôi sẽ biên dịch tài liệu h
ư
ớng dẫn từ tiếng Anh sang tiếng Việt, cùng
ời học dễ dàng trong cách sử dụng bộ th

ư viện đ
ể lập trình.
ấp nguồn tài liệu tiếng Việt cho sinh viên Việt Nam tham khảo, học tập,
ứu lập trình dễ dàng trên bộ th
ư viện OpenCV.
ện OpenCV
2.1 C API
ể nghiên cứu: Sinh viên ngành Công nghệ thông tin,
đ
ặc biệt là các lập trình viên
ện này.

3
ất quan tâm tới công nghệ nhận dạng máy tính, công nghệ này rất mới, ứng dụng rộng rãi
ệc tìm kiếm
ồn tài liệu Tiếng Việt về OpenCV hiện nay rất hiếm, phần lớn tài liệu là bằng tiếng Anh,
ốn học hoặc ứng dụng. Vì lí do trên tôi chọn
đề tài
ốn cung cấp cho các bạn nguồn tài liệu Tiếng Việt, rất mong sẽ giúp ích cho các
ớng dẫn từ tiếng Anh sang tiếng Việt, cùng
ể lập trình.

ấp nguồn tài liệu tiếng Việt cho sinh viên Việt Nam tham khảo, học tập,
ặc biệt là các lập trình viên
4
4. Phạm vi nghiên cứu:
OpenCV 2.1 C API
5. Đặt giả thuyết:
Việc tôi biên dịch tài liệu OpenCV này, nó thật sự giúp ích cho bạn trong việc học, sử dụng bộ
thư viện này ? Thật sự cần thết khi bạn quan tâm tới nó ? Có nó sẽ giúp bạn tự học bộ thư viện

này ?
Với nguồn tài liệu được biên dịch sang tiếng Việt, việc bạn học bộ thư viện này sẽ thật sự dễ
dàng. Nó cần thiết khi bạn quan tâm tới. Với nguồn tài liệu Tiếng Việt sẽ rất cần thiết để việc
học của bạn trở nên dễ dàng hơn rất nhiều.
Biên dịch tài liệu này với code mẫu sẽ giúp bạn thật sự dễ hiểu và có thể tự học một cách hiệu
quả, đạt kết quả như mong muốn.
Khi hoàn thành đề này, các sinh viên viên, các lập trình viên Việt Nam có thể dễ dàng sử dụng
bộ thư viện OpenCV để viết ra các phần mềm ứng dụng như đã nêu trên, nhanh chóng đón bắt
công nghệ thế giới.


5
6. Thực trạng và khảo sát về bộ thư viện nguồn mở OpenCV:
6.1. Thực trạng:
- Nguồn tài liệu Tiếng Việt về OpenCV hiện nay rất hiếm, phần lớn tài liệu là bằng tiếng Anh,
gây nhiều khó khăn trong cho sinh viên muốn học hoặc ứng dụng. Trên các diễn đàn hay
website cũng có rất nhiều đề tài nói về OpenCV. Ví dụ như
Nhưng hầu hết các trang này đều không có tài liệu thống nhất về
OpenCV tiếng Việt mà chỉ có một số tài liệu đơn lẻ, hoặc tài liệu bằng tiếng Anh. Ở các trường
đại học cũng tương tự là tài liệu học tập cho sinh viên đều là tiếng Anh. Sinh viên Việt Nam
muốn khởi đầu việc nghiên cứu đều phải gặp rất nhiều khó khăn do rào cản ngôn ngữ (Tiếng
Anh), việc hiểu một thuật ngữ mang tính kỹ thuật với một người mới rất mất thời gian và
không bao giờ là dễ dàng.
6.2. Khảo sát:
Phiếu khảo sát đã phát ra là 60 phiếu và thu về được 56 phiếu. Dưới đây là biểu đồ chi tiết các
câu hỏi khảo sát được.


1. Không
2. Có, nhưng không nhiều

3. Rất quan tâm

1
30%
2
59%
3
11%
1. Bạn có quan tâm về Robot không?
6

1. Không
2. Có, nhưng không nhiều
3. Rất quan tâm


1. Chưa từng nghe qua
2. Có nghe qua
1
21%
2
72%
3
7%
2. Bạn có quan tâm về công nghệ nhận dạng khuôn mặt người
bằng máy tính?
1
41%
2
59%

(3) 0%
3. Bạn có biết Thị giác máy tính?
7
3. Đang tìm hiểu

1. Không
2. Cũng chỉ biết qua
3. Rất quan tâm


1. Không
1
20%
2
62%
3
18%
4. Đây là công nghệ nhận dạng máy tính,
bạn quan tâm tới nó chứ?
1
31%
2
23%
3
5%
4
41%
5. Những ứng dụng của bộ thư viện này mà bạn biết?
8
2. Xử lí màu sắc và độ phân giải

3. An ninh (camera thông minh, nhân dạng)
4. Cả 2 và nhiều ứng dụng khác nữa

1. Chưa bao giờ
2. Chỉ đọc qua cho biết
3. Chắc chắn rồi


1
34%
2
37%
3
29%
6. Đã bao giờ bạn tìm kiếm tài liệu tự học về một bộ nguồn
thư viện nào?
1
14%
2
70%
3
16%
6b. Bạn muốn tự học bộ thư viện này chứ?
9
4. Không
5. Cũng muốn thử qua
6. Rất muốn

1. Tất nhiên
2. Không quan tâm



1
93%
2
7%
7. Nếu học, bạn muốn nguồn tài hướng dẫn bằng Tiếng Việt
chứ?
1
29%
2
62%
3
9%
8. Tài liệu về thư viện này bằng Tiếng Việt có nhiều
không?
10
1. Không biết
2. Ít
3. Nhiều

1. Không
2. Cũng thỉnh thoảng
3. Khi nào cần mới tìm
4. Thường xuyên

1
27%
2
27%

3
43%
4
3%
9. Bạn có tìm kiếm tài liệu liên quan đến bộ thư viện
không?
11

1. Không
2. Có, nhưng ít
3. Nhiều


1. Không quan tâm
2. Tức nhiên là Tiếng Việt
3. Sao cũng được
1
32%
2
63%
3
5%
10. Nguồn tài liệu Tiếng Việt về nó rất hiếm, bạn có nhiều
không?
1
11%
2
84%
3
5%

11. Bạn muốn đọc tài liệu về OpenCV bằng ngoại ngữ hay
bằng tiếng Việt?
12


1. Chưa bao giờ
2. Chỉ mới thử qua
3. Cũng thỉnh thoảng
4. Thường xuyên


1. Chưa từng lập trình với nó
1
58%
2
14%
3
16%
4
12%
12. Bạn đã từng lập trình với thư viện OpenCV này chưa?
1
73%
2
11%
3
11%
4
5%
13. Nếu bạn đã từng lập trình với thư việnOpenCV, bạn có gặp

khó với cách dùng các hàm trong OpenCV khi tài liệu bằng
tiếng Anh?
13
2. Không
3. Cũng không khó lắm
4. Quá khó khăn

1. Mình không quan tâm
2. Cũng được đấy
3. Rất có ích

















1
33%
2

53%
3
14%
14. Việc chúng tôi biên dịch nguồn tài liệu này sang Tiếng Việt
bạn thấy thế nào?
14



15
Phần II. Quy trình thực hiện:
- Từ 5/9/2011 đến 1/10/2011: Xác định đề tài nghiên cứu và đăng kí đề tài
- Từ 3/10/2011 đến 22/10/2011: Biên soạn đề cương nghiên cứu, phát bảng khảo sát và thống
kê kết quả khảo sát.
- Từ 24/10/2011 đến 25/12/2011: Thực hiện sản phẩm:
1. Lọc nguồn tài liệu cần dịch từ nguồn tài liệu nước ngoài
2. Chia nội dung cần dịch ra các chương, phần, hàm cụ thể và sắp xếp
3. Duyệt sơ lượt các toàn bộ các phần đã chọn và sắp xếp lại lần nữa
4. Bắt đầu dịch toàn bộ theo thứ tự đã xếp. Công cụ hỗ trợ: translate.google.com.vn,
tratu.soha.vn, vdict.com
5. Sau khi dịch xong, đọc lại để sửa lỗi.
6. Đóng gói sản phẩm, đem đi in.
- Từ 25/12/2011: Nộp bài về cho khoa.





















Phần III. Tổng kết
Tài liệu tham khảo:
- OpenCV Reference Manual v2.1

/>-
Learning OpenCV: computer vision with the OpenCV library
/>seAgiOfu
q&f=false
Tác giả: Gary Bradski,
Adrian Kaehler
-
Algorithms for Image Processing and Computer Vision
/>BK
6134&hl=vi&pg=PA15#v=onepage
&
Tác giả: J. R. Parker
Trang chủ: http://opencv.

willowgarage

Giới thiệu về OpenCV:
- OpenCV là vi
ết tắt của Open Source Computer Vision.
trình g
ồm nhiều hàm C và một số lớp C++ dựa trên thuật toán phổ biến trong xử lí ảnh và thị
giác máy tính.
-Bộ thư viên này còn đư
ợc viết trên ngôn ngữ
tản:
Windows, Linux, Android và Mac
- OpenCV cung c
ấp rất nhiều kiểu dữ liệu có cấu trúc nhằm hỗ trợ tối việc xử lí.
Ứng dụng công nghệ nhận dạng :
- Hiệu chỉnh và phục chế ảnh


/>
Learning OpenCV: computer vision with the OpenCV library

seAgiOfu
2EIC&lpg=PP1&hl=vi&pg=PA364#
v
Adrian Kaehler

Algorithms for Image Processing and Computer Vision

BK
3oXzpxC44C&lpg=PP1&dq=related%3

AISBN
&
q&f=false
willowgarage
.com

ết tắt của Open Source Computer Vision.
Đó là một thư vi
ện nguồn mở
ồm nhiều hàm C và một số lớp C++ dựa trên thuật toán phổ biến trong xử lí ảnh và thị
ợc viết trên ngôn ngữ
Python và Java. Lập trình đư
ợc trên nhiều nền
Windows, Linux, Android và Mac

ấp rất nhiều kiểu dữ liệu có cấu trúc nhằm hỗ trợ tối việc xử lí.

16
v
=onepage&
AISBN
059651
ện nguồn mở
để lập
ồm nhiều hàm C và một số lớp C++ dựa trên thuật toán phổ biến trong xử lí ảnh và thị
ợc trên nhiều nền
17
- Xử lí màu sắc và độ phân giải ảnh
- Xử lí hình trạng và phân tách chi tiết
- Tái dựng ảnh ba chiều và diễn giải ảnh

- Nhận dạng và giám sát thực thể
- Y khoa (chẩn đoán, giải phẫu)
- An ninh (camera thông minh, nhận dạng)
- Giao thông (theo dõi lưu thông, điều khiển xe)
- Tự động hóa sản xuất (đo lường, kiểm định chất lượng) và v.v…

Kinh nghiệm:
Trong quá trình thực hiện đề tài, số từ vựng tiềng Anh của tôi đã tăng lên, thêm được nhiều từ
vựng mới, đặc biệt là các từ chuyên ngành công nghệ thông tin.
Tôi được biết về quy trình đề thực hiện một đề tài nghiên cứu khoa học, viết báo cáo tổng kết
đề nghiên cứu khoa học.
Hướng phát triển của đề tài:
Bộ thư viện OpenCV ứng dụng được trong rất nhiều ngành nghề khác nhau, như an ninh trong
việc nhận dạng vân tay, đối tượng, tiết kiệm rất nhiều thời gian và công sức thay cho con
người, nâng cao hiệu quả công việc. Chế tạo robot tự động hóa. Xử lí, phục chế hình ảnh trong
siêu âm… Rất nhiều ứng dụng phục vụ con người, đây là sự đón đầu công nghệ thế giới cho
Việt Nam. Tài liệu hướng dẫn sử dụng OpenCV này sẽ tạo đòn bẩy đưa công nghệ tương lai về
với Việt Nam. Như đã nói, các lập trình viên Việt Nam sẽ sử dụng tài liệu hướng dẫn sử dụng
bộ thư viện OpenCV viết các phần mềm ứng dụng cao cấp trên, phục vụ cho cuộc sống, phát
triển đất nước.
Trong thời gian tới, tôi sẽ tiếp tục hoàn thiện bộ tài hướng dẫn này hơn nữa, nâng cấp bộ tài
liệu này theo các phiên bản OpenCV mới hơn, tiếp tục làm bộ tài liệu hướng dẫn cho OpenCV
C++ API, java.
Bộ tài liệu này sẽ được chia sẻ miễn phí hoàn trên mạng, để mọi người đều được sử dụng dễ
dàng đóng góp, hoàn thiện nó hơn nữa. Mọi người cũng có thể chia sẻ kiến thức, kinh nghiệm
lập trình với OpenCV, cộng đồng cùng nhau phát triển và phát triển đất nước.



18


19

Tài liệu hướng dẫn sử sụng OpenCV v2.1


Mục lục:

Chương 1: cxcore. Hàm cốt lõi…………………………………………………………………

1.1 Các Struct cơ bản………………………………………………………………………………
1.2 Hoạt động trên mảng…………………………………………………………………………
1.3 Cấu trúc động……………………………………………………………………………………
1.4 Các hàm vẽ………………………………………………………………………………………….
1.5 XML/YAML Persistence……………………………………………………………………
1.6 Phân nhóm và Tìm kiếm trong không gian đa chiều………………………….
Chương 2: cv. Xử lý hình ảnh và thị giác máy tính………………………………….

2.1 Lọc hình ảnh……………………………………………………………………………………….
2.2 Ảnh hình học biến đổi…………………………………………………………………………

2.3 Hình ảnh hỗn hợp biến đổi…………………………………………………………………
2.4 Biểu đồ………………………………………………………………………………… …………….

Chương 3: cvaux. Các hàm mở rộng của Thị Giác Máy Tính… …………….

Chương 4: highgui. Cao cấp giao diện và I/O… ……………… ……………… …….

4.1 Giao diện người dùng… ……………… ……………… ……………… …………………
4.2 Đọc / ghi hình ảnh và video… ……………… ……………… ……………… ………


20
20
27
59
86
94
111
113
113
121
128
142
152
153
153
157

















20
Chương 1: cxcore. Hàm cốt lõi

1.1 Các Struct cơ bản

CvPoint
2D điểm với số nguyên tọa độ (thường là zero-based).
typedef struct CvPoint
{
int x;
int y;
}
CvPoint;
x x-phối hợp
y y-phối hợp
/ * Constructor * /
inline CvPoint cvPoint( int x, int y );
/ * Chuyển đổi từ CvPoint2D32f * /
inline CvPoint cvPointFrom32f( CvPoint2D32f point );

CvPoint2D32f
2D điểm với tọa độ điểm nổi
typedef struct CvPoint2D32f
{
float x;
float y;
}

CvPoint2D32f;
x x-phối hợp
y y-phối hợp
/ * Constructor * /
inline CvPoint2D32f cvPoint2D32f (double x, double y);
/ * Chuyển đổi từ CvPoint * /
inline CvPoint2D32f cvPointTo32f( CvPoint point );

CvPoint3D32f
3D điểm với tọa độ điểm nổi
typedef struct CvPoint3D32f
{
float x;
float y;
float z;
}
CvPoint3D32f;
x x-phối hợp
y y-phối hợp
z z-phối hợp
/ * Constructor * /
21
inline CvPoint3D32f cvPoint3D32f( double x, double y, double z );

CvPoint2D64f
2D điểm với tọa độ điểm độ chính xác kép nổi
typedef struct CvPoint2D64f
{
double x;
double y;

}
CvPoint2D64f;
x x-phối hợp
y y-phối hợp
/ * Constructor * /
inline CvPoint2D64f cvPoint2D64f( double x, double y );
/ * Chuyển đổi từ CvPoint * /
inline CvPoint2D64f cvPointTo64f( CvPoint point );

CvPoint3D64f
3D điểm với tọa độ điểm độ chính xác kép nổi
typedef struct CvPoint3D64f
{
double x;
double y;
double z;
}
CvPoint3D64f;
x x-phối hợp
y y-phối hợp
z z-phối hợp
/ * Constructor * /
inline CvPoint3D64f cvPoint3D64f( double x, double y, double z );

CvSize
Pixel chính xác kích thước của hình chữ nhật.
typedef struct CvSize
{
int width;
int height;

}
CvSize;
Chiều rộng chiều rộng của hình chữ nhật
Chiều cao chiều cao của hình chữ nhật
/ * Constructor * /
inline CvSize cvSize( int width, int height );

CvSize2D32f
Sub-pixel chính xác kích thước của hình chữ nhật.
22
typedef struct CvSize2D32f
{
float width;
float height;
}
CvSize2D32f;
Chiều rộng chiều rộng của hình chữ nhật
Chiều cao chiều cao của hình chữ nhật
/ * Constructor * /
inline CvSize2D32f cvSize2D32f( double width, double height );

CvRect
Bù đắp (thường là góc trên bên trái) và kích thước của hình chữ nhật.
typedef struct CvRect
{
int x;
int y;
int width;
int height;
}

CvRect;
x x-phối hợp của các góc trên cùng, bên trái
y y-phối hợp của góc trên bên trái (phía dưới bên trái cho Windows bitmap )
Chiều rộng chiều rộng của hình chữ nhật
Chiều cao chiều cao của hình chữ nhật
/ * Constructor * /
inline CvRect cvRect( int x, int y, int width, int height );
CvScalar
Một container cho 1, 2, 3 - 4-tuples của đôi.
typedef struct CvScalar
{
double val[4];
}
CvScalar;
/ * Constructor:
khởi tạo val [0] với val0, val [1] với val1.
* /
inline CvScalar cvScalar( double val0, double val1=0, double val2=0, double val3=0 );
/ * Constructor:
khởi tạo tất cả của val [0] val [3] với val0123
* /
inline CvScalar cvScalarAll( double val0123 );
/ * Constructor:
khởi tạo val [0 với val0, và tất cả các val [1] val [3] với số không
* /
inline CvScalar cvRealScalar( double val0 );

23
CvTermCriteria
Tiêu chí chấm dứt cho lặp đi lặp lại các thuật toán.

#define CV_TERMCRIT_ITER 1
#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER
#define CV_TERMCRIT_EPS 2
typedef struct CvTermCriteria
{
int type;
int max_iter;
double epsilon;
}
CvTermCriteria;
type Một sự kết hợp của CV_TERMCRIT ITER và CV_TERMCRIT EPS
max_iter số lần lặp tối đa
epsilon yêu cầu độ chính xác
/ * Constructor * /
inline CvTermCriteria cvTermCriteria( int type, int max_iter, double epsilon );
/ * Kiểm tra và chuyển đổi một CvTermCriteria để
type = CV_TERMCRIT_ITER + CV_TERMCRIT_EPS
và cả hai max_iter và epsilon là hợp lệ * /
CvTermCriteria cvCheckTermCriteria( CvTermCriteria criteria, double default_eps, int
default_max_iters );

CvMat
Một ma trận đa kênh.
typedef struct CvMat
{
int type;
int step;
int* refcount;
union
{

uchar* ptr;
short* s;
int* i;
float* fl;
double* db;
} data;
#ifdef __cplusplus
union
{
int rows;
int height;
};
union
{
int cols;
24
int width;
};
#else
int rows;
int cols;
#endif
} CvMat;
type gõ chữ ký CvMat (CV MAT MAGIC VAL) có chứa các loại của các yếu tố và cờ
step hàng chiều dài theo byte
refcount Bên dưới tham chiếu truy cập dữ liệu
data Con trỏ dữ liệu để các dữ liệu ma trận thực tế
rows Số hàng của hàng
cols Số cột của cột
Ma trận được lưu trữ hàng bởi hàng. Tất cả các hàng được liên kết bởi 4 byte.


CvMatND
Đa chiều đa kênh mảng dày đặc.
typedef struct CvMatND
{
int type;
int dims;
int* refcount;
union
{
uchar* ptr;
short* s;
int* i;
float* fl;
double* db;
} data;
struct
{
int size;
int step;
}
dim[CV_MAX_DIM];
} CvMatND;
type loại chữ ký CvMatND (CV MATND MAGIC VAL), kết hợp các loại của các yếu tố và
cờ
dims làm mờ số của kích thước mảng
refcount Bên dưới tham chiếu truy cập dữ liệu
data Con trỏ dữ liệu để các dữ liệu ma trận thực tế
dim mờ Đối với mỗi chiều, cặp đôi này (số yếu tố, khoảng cách giữa các thành phần trong byte
)


CvSparseMat
Multi-chiều thưa thớt mảng đa kênh.
25
typedef struct CvSparseMat
{
int type;
int dims;
int* refcount;
struct CvSet* heap;
void** hashtable;
int hashsize;
int total;
int valoffset;
int idxoffset;
int size[CV_MAX_DIM];
} CvSparseMat;
type loại chữ ký CvSparseMat (CV_SPARSE_MAT_MAGIC_VAL), kết hợp các loại của các
yếu tố và cờ.
dims Số mờ của kích thước
refcount Bên dưới tham chiếu truy cập. Không được sử dụng.
heap Một đống hồ bơi của các nút bảng băm
hashtable Các bảng băm. Mỗi mục là một danh sách các nút.
hashsize Kích thước của bảng băm
total tổng của các nút mảng thưa thớt
valoffset giá trị bù đắp của các nút mảng, theo byte
idxoffset Chỉ số bù đắp của các nút mảng, theo byte
size mảng có kích thước kích thước

IplImage

IPL hình ảnh tiêu đề
typedef struct _IplImage
{
int nSize;
int ID;
int nChannels;
int alphaChannel;
int depth;
char colorModel[4];
char channelSeq[4];
int dataOrder;
int origin;
int align;
int width;
int height;
struct _IplROI *roi;
struct _IplImage *maskROI;
void *imageId;
struct _IplTileInfo *tileInfo;
int imageSize;
char *imageData;

×