1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO BÀI TẬP NHÓM MÔN: XỬ LÝ ẢNH

27 15 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - BÁO CÁO BÀI TẬP NHĨM MƠN: XỬ LÝ ẢNH GIẢNG VIÊN: Trần Thúy Hà NHÓM: 03 SINH VIÊN: Nguyễn Thuần Hưng – B15DCCN262 Vũ Chí Thành – B15DCCN516 Nguyễn Hữu Ước – B15DCCN638 HÀ NỘI – 2018 PHẦN 1: BÀI TẬP BẮT BUỘC  Thực cài đặt chạy thuật tốn  Ngơn ngữ sử dụng: Python 3.6.5  Thư viện: OpenCV (đọc, ghi ảnh); matplotlib (hiển thị so sánh kết quả); numpy (xử lý số học ma trận)  Mã nguồn hàm xử lý, so sánh ảnh gốc ảnh xử lý cho thuật toán Tách ngưỡng (thresholding.py): Code: def threshold(T, image): height = image.shape[0] width = image.shape[1] for y in range(0, height): for x in range(0, width): image[y, x] = 255 if image[y, x] >= T else return image Kết thực với ngưỡng = 150: Khuếch tán lỗi chiều (error_diffusion.py): Code: def errorDiffusion1(T, image): height = image.shape[0] width = image.shape[1] temp = for y in range(0, height): for x in range(0, width): if (int(image[y, x]) + temp >= T): temp = int(image[y, x]) + temp - 255 image[y, x] = 255 else: temp = image[y, x] image[y, x] = temp = return image Kết thực với ngưỡng = 127: Khuếch tán lỗi chiều theo kiểu Floyd – Steinberg (fs_dithering.py): Code: def threshold(value, T): return 255 if value >= T else def errorDiffusionFS(image, T): height = image.shape[0] width = image.shape[1] for y in range(0, height): for x in range(0, width): oldpx = image[y, x] newpx = threshold(oldpx, T) error = oldpx - newpx if x < width-1: image[y, x+1] += error * 7/16 if x > and y < height-1: image[y+1, x-1] += error * 3/16 if y < height-1: image[y+1, x] += error * 5/16 if x < width-1 and y < height-1: image[y+1, x+1] += error * 1/16 return image Kết thực với ngưỡng = 127: Tăng giảm độ sáng (adjust_brightness.py): Code: def adjustBirghtness(image, value): height = image.shape[0] width = image.shape[1] for y in range(0, height): for x in range(0, width): temp = int(image[y, x]) + value if temp >= 255: image[y, x] = 255 elif temp = -22.5 and theta[y, x] < 22.5) or (theta[y, x] >= 157.5 or theta[y, x] < -157.5): if not (mag[y, x] >= mag[y, x+1] and mag[y, x] >= mag[y, x-1]): res[y, x] = elif (theta[y, x] >= 22.5 and theta[y, x] < 67.5) or (theta[y, x] >= -157.5 and theta[y, x] < -112.5): if not (mag[y, x] >= mag[y-1, x+1] and mag[y, x] >= mag[y+1, x-1]): res[y, x] = elif (theta[y, x] >= 67.5 and theta[y, x] < 112.5) or (theta[y, x] >= -112.5 and theta[y, x] < -22.5): if not (mag[y, x] >= mag[y-1, x] and mag[y, x] >= mag[y+1, x]): res[y, x] = else: if not (mag[y, x] >= mag[y-1, x-1] and mag[y, x] >= mag[y+1, x+1]): res[y, x] = print("Double Thresholding ") MAX = np.max(iamge) upperT = 0.2*MAX lowerT = 0.1*MAX a = [-1, 0, 1, -1, 1, -1, 0, 1] b = [-1, -1, -1, 0, 0, 1, 1, 1] def check(x, y): for i in range(8): if (res[y+b[i], x+a[i]] > upperT): return True return False for y in range(1, mag.shape[0]-1): for x in range(1, mag.shape[1]-1): if (res[y, x] >= upperT): res[y, x] = 255 elif (res[y, x] < lowerT): res[y, x] = else: if (check(x, y) == True): res[y, x] = 255 else: res[y, x] = print("DONE!") return res Ảnh gốc: Kết bước thực thuật toán: Làm trơn ảnh: Tính Gradient ảnh cách sử dụng mặt nạ Sobel:  Kết với mặt nạ Sx  Kết với mặt nạ Sy Tính độ lớn hướng Gradient điểm:  Độ lớn Gradient điểm:  Gradient hướng (minh họa dạng ảnh): Tìm cực trị địa phương theo Gradient hướng: Tách ngưỡng kép: ... C? ? ngh? ?a độ chênh lệch c? ??p x? ?m đi? ?m bi? ?n nhỏ tốt Số lượng trả lời – hi? ?u suất: bi? ?n không nh? ?n nhi? ?u, c? ? bi? ?n t? ?n  gi? ?m số lượng bi? ?n phát không nh? ?n Chi tiết b? ?? ?c th? ?c hi? ?n: L? ?m tr? ?n ảnh: Nh? ?n. .. h? ?nh ảnh thơng dụng Phương pháp tốt, c? ? khả cho đường bi? ?n m? ??nh phát x? ?c đi? ?m bi? ?n với đi? ?m nhi? ?u M? ? ?c ti? ?u (ràng bu? ?c) JFC để phát tri? ?n thuật t? ?n tối ? ?u v? ?n đề li? ?n quan đ? ?n ti? ?u chu? ?n sau:... bi? ?n nói chung gi? ?m thi? ?u đáng kể số lượng li? ?u h? ?nh ảnh, đ? ?c tính c? ? ?u tr? ?c giữ để sử dụng cho vi? ? ?c xử lý h? ?nh ảnh Phương pháp Canny – phát tri? ?n John F Canny (JFC) vào n? ?m 1986, c? ?ng c? ?? xử lý h? ?nh

Ngày đăng: 28/09/2022, 11:21

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w