VI -Biến đổi không gian ảnh
5. Xén ảnh (image cropping)
- Để 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;
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:
X2 = imcrop(X,map,rect) RGB2 = imcrop(RGB,rect)
Trong đó: rect là một véctơ bốn phần tử dạng [xmin ymin width height ], những giá trị này được chỉ ra trong tọa độ không gian. Để chỉ định các tọa độ không theo tọa độ không gian cho ảnh vào, đặt trước các tham số khác với 2 véc tơ 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ệ tọa độ 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 tọa độ 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ệ tọa độ 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ứ không phải 30x40. Điều này là do ảnh ra bao gồm tất cả các pixel trong ảnh 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');
I2 = imcrop(I,[75 68 130 112]); imview(I), imview(I2)