Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Tôi có một số hình ảnh cắt và tôi cần hình ảnh có văn bản màu đen trên nền trắng. Đầu tiên tôi áp dụng ngưỡng thích ứng và sau đó tôi cố gắng xóa nhiễu. Mặc dù tôi đã thử rất nhiều kỹ thuật loại bỏ tiếng ồn nhưng khi hình ảnh thay đổi, các kỹ thuật tôi đã sử dụng không thành công.

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Phương pháp tốt nhất để chuyển đổi màu hình ảnh thành nhị phân cho hình ảnh của tôi là ngưỡng Gaussian thích ứng. Đây là mã của tôi:

im_gray = cv2.imread("image.jpg",  cv2.IMREAD_GRAYSCALE)
image = cv2.GaussianBlur(im_gray, (5,5), 1)
th =  cv2.adaptiveThreshold(image,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,3,2)

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Tôi cần các giá trị mượt mà, dấu phân cách thập phân (dấu chấm) và các chữ cái postfix. Tôi có thể làm cái này như thế nào?

Khi được hỏi ngày 27 tháng 5 năm 2020 lúc 11:37May 27, 2020 at 11:37

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

UgurcanugurcanUgurcan

3201 Huy hiệu vàng4 Huy hiệu bạc15 Huy hiệu đồng1 gold badge4 silver badges15 bronze badges

Trước khi nhị phân, cần phải điều chỉnh sự chiếu sáng không đồng nhất của nền. Ví dụ, như thế này:

import cv2

image = cv2.imread('9qBsB.jpg')
image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
se=cv2.getStructuringElement(cv2.MORPH_RECT , (8,8))
bg=cv2.morphologyEx(image, cv2.MORPH_DILATE, se)
out_gray=cv2.divide(image, bg, scale=255)
out_binary=cv2.threshold(out_gray, 0, 255, cv2.THRESH_OTSU )[1] 

cv2.imshow('binary', out_binary)  
cv2.imwrite('binary.png',out_binary)

cv2.imshow('gray', out_gray)  
cv2.imwrite('gray.png',out_gray)

Kết quả:

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?
Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Đã trả lời ngày 27 tháng 5 năm 2020 lúc 17:57May 27, 2020 at 17:57

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Alex Alexalex AlexAlex Alex

1.8281 Huy hiệu vàng5 Huy hiệu bạc10 Huy hiệu đồng1 gold badge5 silver badges10 bronze badges

1

Bạn có thể làm tốt hơn một chút bằng cách sử dụng chuẩn hóa phân chia trong Python/OpenCV.

Input:

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

import cv2
import numpy as np

# load image
img = cv2.imread("license_plate.jpg")

# convert to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# blur
blur = cv2.GaussianBlur(gray, (0,0), sigmaX=33, sigmaY=33)

# divide
divide = cv2.divide(gray, blur, scale=255)

# otsu threshold
thresh = cv2.threshold(divide, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)[1]

# apply morphology
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
morph = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)

# write result to disk
cv2.imwrite("hebrew_text_division.jpg", divide)
cv2.imwrite("hebrew_text_division_threshold.jpg", thresh)
cv2.imwrite("hebrew_text_division_morph.jpg", morph)

# display it
cv2.imshow("gray", gray)
cv2.imshow("divide", divide)
cv2.imshow("thresh", thresh)
cv2.imshow("morph", morph)
cv2.waitKey(0)
cv2.destroyAllWindows()

Hình ảnh phân chia:

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Hình ảnh được ngưỡng:

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Hình ảnh làm sạch hình thái:

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Đã trả lời ngày 24 tháng 11 năm 2021 lúc 17:59Nov 24, 2021 at 17:59

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

fmw42fmw42fmw42

41.1k9 Huy hiệu vàng52 Huy hiệu bạc70 Huy hiệu đồng9 gold badges52 silver badges70 bronze badges

2

Tôi giả sử rằng bạn đang tiền xử lý hình ảnh cho OCR (nhận dạng ký tự quang học)

Tôi đã có một dự án để phát hiện biển số và đây là những bước tôi đã làm, bạn có thể áp dụng chúng cho dự án của bạn. Sau khi màu xám, hình ảnh, hãy thử áp dụng biểu đồ cân bằng cho hình ảnh, điều này cho phép khu vực trong hình ảnh có độ tương phản thấp hơn để đạt được độ tương phản cao hơn. Sau đó làm mờ hình ảnh để giảm nhiễu trong nền. Tiếp theo áp dụng phát hiện cạnh trên hình ảnh, đảm bảo rằng nhiễu được loại bỏ đủ vì ED dễ bị ảnh hưởng. Cuối cùng, áp dụng đóng (giãn nở sau đó xói mòn) trên hình ảnh để đóng tất cả các lỗ nhỏ bên trong các từ.

Đã trả lời ngày 27 tháng 5 năm 2020 lúc 16:28May 27, 2020 at 16:28

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Yudhieshyudhieshyudhiesh

5,8953 Huy hiệu vàng12 Huy hiệu bạc39 Huy hiệu đồng3 gold badges12 silver badges39 bronze badges

1

Thay vì ăn mòn và giãn nở, bạn có thể kiểm tra điều này, về cơ bản là cả hai trong một.

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1,2))
morphology_img = cv2.morphologyEx(img_grey, cv2.MORPH_OPEN, kernel,iterations=1)
plt.imshow(morphology_img,'Greys_r')

MORPHOLOGICAL_TRANSFORMATIONS

Đã trả lời ngày 24 tháng 11 năm 2021 lúc 17:24Nov 24, 2021 at 17:24

Hướng dẫn how do i reduce image noise in python? - làm cách nào để giảm nhiễu hình ảnh trong python?

Làm thế nào để bạn giảm tiếng ồn trong Python?

Giảm nhiễu trong Python bằng cách sử dụng phương pháp quang phổ, nó dựa vào một phương pháp gọi là "Gating Spectral" là một dạng của cổng nhiễu. Nó hoạt động bằng cách tính toán một phổ của tín hiệu (và tùy ý tín hiệu nhiễu) và ước tính ngưỡng nhiễu (hoặc cổng) cho từng dải tần của tín hiệu/nhiễu đó.using spectral gating It relies on a method called "spectral gating" which is a form of Noise Gate. It works by computing a spectrogram of a signal (and optionally a noise signal) and estimating a noise threshold (or gate) for each frequency band of that signal/noise.

Làm thế nào bạn có thể giảm tiếng ồn trong một hình ảnh?

Giảm nhiễu từ ảnh của bạn với ảnh của bạn đã chọn, nhấp vào biểu tượng Chỉnh sửa.Mở bảng chi tiết để tiết lộ thanh trượt giảm nhiễu.Trước khi bạn thực hiện bất kỳ điều chỉnh nào, nhấp vào biểu tượng 1: 1 trên thanh công cụ hoặc nhấp vào ảnh để phóng to kích thước thực tế của hình ảnh.With your photo selected, click the Edit icon. Open the Detail panel to reveal the Noise Reduction slider. Before you make any adjustments click the 1:1 icon in the toolbar, or click on the photo to zoom into the actual size of the image.

Làm cách nào để làm sạch hình ảnh trong Python?

Đây là một cách để làm điều đó trong Python/Opencv ...
Đọc đầu vào ..
Làm mờ nó ..
Chuyển đổi sang HSV và trích xuất kênh bão hòa ..
Ngưỡng hình ảnh bão hòa ..
Làm sạch nó với hình thái gần và mở và tiết kiệm như một mặt nạ ..
Tái tạo hình ảnh ngưỡng OTSU của bạn ..
Viết hình ảnh màu đen đến OTSU trong đó mặt nạ là màu đen (không).

Làm thế nào để Python phát hiện tiếng ồn trong một hình ảnh?

Làm thế nào để Python phát hiện tiếng ồn trong một hình ảnh?Chuyển đổi hình ảnh thành không gian màu HSV bằng cách sử dụng, xem CV2.calculation biểu đồ của kênh bão hòa, xem CV2.calculation tỷ lệ phần trăm của pixel với độ bão hòa tối thiểu, giả sử ít nhất 0,05.Convert image to HSV color space using, see cv2. Calculate the histogram of the saturation channel, see cv2. Calculate percentage of pixels with a minimum saturation, let's say at least 0.05 .