0
Tải bản đầy đủ (.doc) (39 trang)

Truy cập giá trị Pixel

Một phần của tài liệu TÌM HIỂU MỘT SỐ THUẬT TOÁN VÀ XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH CƠ BẢN SỬ DỤNG OPENCV (Trang 25 -27 )

Nó có thể tạo ra nhiều loại chức năng sử dụng OpenCV mà không trực tiếp truy cập vào các dữ liệu pixel liệu. Ví dụ, các chương trình nhận diện khuôn mặt,theo dõi, và nhận không bao giờ thao tác dữ liệu pixel liệu trực tiếp. Tuy nhiên, nếu bạn viết các thuật toán xử lý hình ảnh của riêng bạn, bạn có thể cần truy cập vào các giá trị pixel liệu. Dưới đây là hai cách để làm điều đó:

6.1.Pixel truy cập đơn giản

Cách dễ nhất để đọc điểm ảnh cá nhân với cvGet2D ():CvScalar cvGet2D (const CvArr *, int row, int col);Chức năng này có ba thông số: một con trỏ đến một thùng chứa dữ liệu (CVArr *) và mảng chỉ số hàng và vị trí cột. Các thùng chứa dữ liệu có thể là một cấu trúc IplImage. Hàng trên cùng của điểm ảnh là hàng = 0, và dưới cùng là = chiều cao-1 hàng. CvGet2D () chức năng trả về một cấu trúc C, CvScalar, được định nghĩa là:

CvScalar typedef struct {

double val [4]; }

Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 22

Đối với một kênh ba, BGR hình ảnh, màu xanh = val [0], xanh lá cây = val [1], và màu đỏ = val [2]. Các chức năng bổ sung, cvSet2D () cho phép bạn chỉnh sửa các giá trị pixel. Đó là định nghĩa: cvSet2D khoảng trống (CvArr *, int row, int col, CvScalar);

6.2.Truy cập nhanh Pixel

Mặc dù cvGet2D() và cvSet2D() là dễ sử dụng, nếu bạn muốn truy cập nhiều hơn một vài giá trị pixel, và các vấn đề hiệu suất, bạn sẽ muốn đọc các giá trị trực tiếp từ bộ đệm dữ liệu thô IplImage.imageData.

Đối với lý do hiệu suất, dữ liệu pixel được liên kết, và đệm nếu cần thiết, sao cho mỗi hàng bắt đầu vào ngày một nhiều bốn-byte. Một lĩnh vực thứ hai, IplImage.widthStep, cho biết số lượng các byte giữa sự bắt đầu của dữ liệu mỗi điểm ảnh của hang: IplImage.imageData +i*IplImage.widthStep.

IplImage.imageData được định nghĩa là kiểu char *, vì vậy bạn có thể cần phải bỏ kiểu dữ liệu.Ví dụ, nếu dữ liệu của bạn hình ảnh byte unsigned (các loại đầu vào phổ biến nhất),

CHƯƠNG 3

XỬ LÝ ẢNH TRONG OPENCV

Một phần của tài liệu TÌM HIỂU MỘT SỐ THUẬT TOÁN VÀ XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH CƠ BẢN SỬ DỤNG OPENCV (Trang 25 -27 )

×