Otsu binarization với bảo quản giá trị


8

Tôi đang cố gắng thực hiện một phiên bản sửa đổi của thuật toán nhị phân otsu. Tôi đang cố gắng để binarize hình ảnh tài liệu. Nhưng trong thủ tục nhị phân tôi muốn đối tượng (trong trường hợp này là văn bản) giữ lại giá trị thang độ xám ban đầu của nó trong khi nền lấy giá trị 255; đó là màu trắng Tôi đang đăng một phiên bản hình ảnh mẫu mà tôi tìm thấy trong một bài báo.

Đây là hình ảnh gốc: nhập mô tả hình ảnh ở đây

Đây là hình ảnh kết quả tôi muốn có được: nhập mô tả hình ảnh ở đây

Ai đó có thể vui lòng cho tôi biết làm thế nào để làm điều đó trong Matlab?


Bạn muốn giữ lại những đốm màu xám khổng lồ?
endolith

tôi muốn giữ lại các giá trị ban đầu của tất cả các pixel có giá trị nằm trên ngưỡng. Điều đó bao gồm các đốm trong trường hợp này.
đánh dấu

Mã nguồn Matlab cho mã hóa Otsu với bảo toàn giá trị ..

Câu trả lời:


8

Tôi không có Matlab tiện dụng, nhưng đây là cách bạn làm điều đó trong OpenCV . Ví dụ dưới đây sử dụng giao diện python thông qua Python (x, y) :

test = cv2.imread("test.jpg", 0)
(_, otsu) = cv2.threshold(test, 0.0, 255.0, cv2.THRESH_TOZERO_INV + cv2.THRESH_OTSU)
cv2.imshow('otsu', otsu)

Điều này dẫn đến đầu ra cần thiết của bạn: nhập mô tả hình ảnh ở đây

EDIT: Tôi không có bản sao Matlab, nhưng tôi nghĩ đây là cách bạn sẽ làm (giả sử bạn có Hộp công cụ xử lý ảnh):

Sử dụng Graythresh để lấy cấp độ Otsu, sau đó đặt bất cứ thứ gì trên mức đó thành màu trắng (hoặc 255).

I = imread('doc.jpg');
I = rgb2gray(I);
otsuLevel = graythresh(I);
I(I > otsuLevel) = 255;

Mong rằng sẽ giúp!


Tôi cần mã trong MATLAB. Tôi là một người mới với phần mềm, vì vậy cần một chút trợ giúp về mã hóa
đánh dấu

@mark Xem chỉnh sửa của tôi cho một giải pháp Matlab có thể.
mevatron

6

Bạn có thể dễ dàng làm điều đó với Mathicala:

img = ColorNegate@ColorConvert[Import["../Desktop/sample.jpg"], "Grayscale"]
ColorNegate@ImageMultiply[Binarize[img], img]

Việc kinh doanh phủ định và nhân lên là để đảm bảo duy trì giá trị thang độ xám ban đầu. Bạn có thể dễ dàng dịch nó sang bất kỳ ngôn ngữ nào, tôi nghĩ vậy.

Kết quả đã lọc

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.