Xén ảnh (image cropping)

Một phần của tài liệu 1 giới thiệu chung về phần mềm matlab (Trang 25 - 27)

- Để trích một vùng chữ nhật của một ảnh, sử dụng hàm imcrop. Hàm imcrop chấp nhận hai tham số chính:

+ Ảnh cần xén

+ Các góc của hình chữ nhật xác định vùng xén

- Nếu ta gọi hàm imcrop mà không chỉ ra hình chữ nhật, ta có thể xén ảnh theo các tương tác. Trong trường hợp này, ta sử dụng trỏ chuột để chọn vùng chữ nhật cần xén bằng cách nhấn và giữ phím chuột trái và di chuyển để chọn vùng xén. Khi chọn xong thì nhả chuột. Trong ví dụ sau, ta hiển thị một ảnh và gọi hàm imcrop. Hàm imcrop hiển thị ảnh trong một hình và đợi ta vẽ vùng chữ nhật cần xén trên ảnh.

imshow circuit.tif I=imcrop;

Imshow(I);

Hình 4 Ảnh trước và sau khi imcrop

Hàm imcrop

- Cú pháp của nó như sau: I2 = imcrop(I)

X2 = imcrop(X,map) RGB2 = imcrop(RGB)

I2 = imcrop(I,rect) X2 = imcrop(X,map,rect) RGB2 = imcrop(RGB,rect) [...] = imcrop(x,y,...) [A,rect] = imcrop(...) [x,y,A,rect] = imcrop(...)Diễn giải

- Hàm imcrop xén một ảnh theo một hình chữ nhật được chỉ định. I2=imcrop(I) ;

X2=imcrop(X,map); RGB2=imcrop(RGB);

Hàm imcrop sẽ hiển thị ảnh I và đợi ta chỉ ra hình chữ nhật cần xén bằng chuột

- Nếu ta bỏ qua các tham số, hàm imcrop thao tác trên ảnh của trục hiện tại. - Để chỉ định một hình chữ nhật ta dùng trỏ chuột như đã nói ở trên

- Ta cũng có thể chỉ ra kích thước của hình chữ nhật mà không thao tác trực tiếp như các cú pháp sau:

I2 = imcrop(I,rect)

X2 = imcrop(X,map,rect) RGB2 = imcrop(RGB,rect)

Trong đó: rect là một vector bốn phần tử dạng [xmin ymin width height], những giá trị này được chỉ ra trong toạ độ không gian. Để chỉ định các toạ độ không theo toạ độ không gian cho ảnh vào, đặt trước các tham số khác với 2 vector hai phần tử chỉ ra Xdata và Ydata. Chẳng hạn:

[…]=imcrop(x,y,…)

- Nếu ta cung cấp các tham số ra phụ, hàm imcrop sẽ trả lại thông tin về vùng chữ nhật được chọn và hệ toạ độ của ảnh vào. Chẳng hạn:

[A,rect] = imcrop(...) [x,y,A,rect] = imcrop(...)

A là ảnh ra, x và y là Xdata và Ydata của ảnh vào

Chú ý:

- Do rect là một tập hợp các toạ độ không gian, các phần tử width và height trong rect không luôn luôn tương ứng chính xác với kích thước của ảnh ra. Chẳng

hạn, giả sử rect là [20 20 40 30], sử dụng hệ toạ độ không gian theo mặc định. Góc

trên trái của vùng chữ nhật được chọn là tâm của pixel (20,20) và góc dưới phải của

vùng chữ nhật là tâm của pixel (50,60). Ảnh ra là một ảnh có kích thước 31x41 chứ

vào

hoàn toàn hoặc một phần được bao bọc bởi vùng chữ nhật trên. Ví dụ

I = imread('circuit.tif'); (adsbygoogle = window.adsbygoogle || []).push({});

I2 = imcrop(I,[75 68 130 112]); imview(I), imview(I2)

Hình 5 Ảnh trước và sau khi imcrop theo 1 tọa độ cho trước

Một phần của tài liệu 1 giới thiệu chung về phần mềm matlab (Trang 25 - 27)