01/10/2018, 14:05
Nhờ sửa giúp function để crop image trong Python
Mọi người giúp mình sửa cái function này với như hình bên dưới
Nếu img_crop = image_original[y:y+h,x:x+w] xảy ra error thì return nothing nếu không sẽ lưu lại image crop ở dòng thứ 2 trên img_crop.

Bài liên quan
Sao lại có dấu phẩy ở trong
[ ]
thế kia?Nếu bạn viết kiểu mảng 2 chiều trong Pascal thì sửa thành
Đó là crop image thôi bạn ơi. Cái này ở trong python nha ko phải Pascal . cái biến Face nếu ko trả giá trị x,y,w,h thì ko crop dc image. Nếu nó trả giá trị thì mới crop dc.
Ý của @noname00 là cú pháp bạn dùng (có thể) là của Pascal và cần phải sửa lại thành:
Python không hề có cú pháp như bạn viết. Bạn hiểu chứ?
image ban đầu là 1 matrix .[y:y+h,x:x+w] ở đây được hiểu là lấy 2 điểm hình chéo ở 1 hình chữ nhật trong Opencv trong python.
https://stackoverflow.com/questions/15589517/how-to-crop-an-image-in-opencv-using-python
Biến face là detect face trong image nó trả về 1 tuple . Nếu trả về tuple là 4 biến (x,y,w,h) thì crop được image. Nếu nó trả về tupe ko có gi tức là () thôi. thì sẽ ko crop dc image.
Mình muốn lưu image nếu crop dc và ko làm gì cả nếu ko crop dc
Cái này bạn phải cài đặt thư viện numpy nhé (commandline:
pip install numpy
) vàimage_original
phải là kiểunumpy.array(...)
mới được nhé.Tham khảo: https://docs.scipy.org/doc/numpy-dev/user/quickstart.html#indexing-slicing-and-iterating
HIX, mình biết chứ cái biến gray,image_original trong detect(gray,image_original): là 2 np.array rồi.
Àh, tưởng bạn chưa biết :v thôi vậy mình không giúp được rồi Với lại, nếu nó ném một biệt lệ khi lỗi, thì thử dùng như này xem:
Bad practice. Luôn luôn phải xử lý ngoại lệ. Exception is your friend.
Thôi vậy muốn viết function cho tiện sau này xài lại . Cũng cảm ơn bạn nhiều .

Mình viết thế này cũng dc rồi