Độ lệch chuẩn của hình ảnh opencv python

Như trong tín hiệu một chiều, hình ảnh cũng có thể được lọc bằng nhiều bộ lọc thông thấp [LPF], bộ lọc thông cao [HPF], v.v. LPF giúp loại bỏ nhiễu, làm mờ hình ảnh, v.v. Bộ lọc HPF giúp tìm các cạnh trong ảnh

OpenCV cung cấp một chức năng để kết hợp kernel với một hình ảnh. Ví dụ: chúng tôi sẽ thử bộ lọc trung bình trên một hình ảnh. Hạt nhân bộ lọc trung bình 5x5 sẽ giống như bên dưới

\[K = \frac{1}{25} \begin{bmatrix} 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\

Các hoạt động hoạt động như thế này. giữ hạt nhân này ở trên một pixel, thêm tất cả 25 pixel bên dưới hạt nhân này, lấy giá trị trung bình và thay thế pixel trung tâm bằng giá trị trung bình mới. Thao tác này được tiếp tục cho tất cả các pixel trong ảnh. Hãy thử mã này và kiểm tra kết quả

từ matplotlib nhập pyplot dưới dạng plt

hạt nhân = np. cái[[5,5],np. float32]/25

plt. ô con[121],plt. imshow[img],plt. tiêu đề ['Bản gốc']

plt. xticks[[]], plt. yticks[[]]

plt. ô con[122],plt. imshow[dst],plt. title['Tính trung bình']

plt. xticks[[]], plt. yticks[[]]

Kết quả

Làm mờ hình ảnh [Làm mịn hình ảnh]

Làm mờ hình ảnh đạt được bằng cách kết hợp hình ảnh với nhân bộ lọc thông thấp. Nó rất hữu ích để loại bỏ tiếng ồn. Nó thực sự loại bỏ nội dung tần số cao [ví dụ như. nhiễu, cạnh] từ hình ảnh. Vì vậy, các cạnh bị mờ một chút trong thao tác này [cũng có các kỹ thuật làm mờ nhưng không làm mờ các cạnh]. OpenCV cung cấp bốn loại kỹ thuật làm mờ chính

1. tính trung bình

Điều này được thực hiện bằng cách cuộn một hình ảnh với bộ lọc hộp chuẩn hóa. Nó chỉ đơn giản là lấy trung bình của tất cả các pixel trong vùng nhân và thay thế phần tử trung tâm. Điều này được thực hiện bởi chức năng hoặc. Kiểm tra tài liệu để biết thêm chi tiết về kernel. Chúng ta nên chỉ định chiều rộng và chiều cao của kernel. Bộ lọc hộp chuẩn hóa 3x3 sẽ giống như bên dưới

\[K = \frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}\]

Lưu ýNếu bạn không muốn sử dụng bộ lọc hộp chuẩn hóa, hãy sử dụng. Truyền đối số normalize=False cho hàm

Kiểm tra bản trình diễn mẫu bên dưới với kernel có kích thước 5x5

từ matplotlib nhập pyplot dưới dạng plt

plt. ô con[121],plt. imshow[img],plt. tiêu đề ['Bản gốc']

plt. xticks[[]], plt. yticks[[]]

plt. ô con[122],plt. imshow[làm mờ],plt. title['Mờ']

plt. xticks[[]], plt. yticks[[]]

Kết quả

2. Làm mờ Gaussian

Trong phương pháp này, thay vì bộ lọc hộp, hạt nhân Gaussian được sử dụng. Nó được thực hiện với chức năng,. Chúng ta nên chỉ định chiều rộng và chiều cao của hạt nhân phải là số dương và số lẻ. Chúng ta cũng nên chỉ định độ lệch chuẩn theo hướng X và Y, sigmaX và sigmaY tương ứng. Nếu chỉ sigmaX được chỉ định, sigmaY được lấy giống như sigmaX. Nếu cả hai đều là số không, thì chúng được tính từ kích thước hạt nhân. Làm mờ Gaussian có hiệu quả cao trong việc loại bỏ nhiễu Gaussian khỏi hình ảnh

Nếu muốn, bạn có thể tạo hạt nhân Gaussian bằng hàm,

Đoạn mã trên có thể được sửa đổi để làm mờ Gaussian

Kết quả

3. Làm mờ trung vị

Ở đây, hàm lấy trung vị của tất cả các pixel trong vùng nhân và phần tử trung tâm được thay thế bằng giá trị trung vị này. Điều này có hiệu quả cao đối với nhiễu muối tiêu trong ảnh. Điều thú vị là trong các bộ lọc trên, phần tử trung tâm là một giá trị mới được tính toán, có thể là giá trị pixel trong ảnh hoặc giá trị mới. Nhưng trong làm mờ trung vị, phần tử trung tâm luôn được thay thế bằng một số giá trị pixel trong ảnh. Nó làm giảm tiếng ồn hiệu quả. Kích thước hạt nhân của nó phải là một số nguyên lẻ dương

Trong bản trình diễn này, tôi đã thêm 50% nhiễu vào hình ảnh gốc của chúng tôi và áp dụng hiệu ứng làm mờ trung bình. Kiểm tra kết quả

Kết quả

4. Lọc song phương

có hiệu quả cao trong việc loại bỏ tiếng ồn trong khi vẫn giữ cho các cạnh sắc nét. Nhưng hoạt động chậm hơn so với các bộ lọc khác. Chúng ta đã thấy rằng bộ lọc Gaussian lấy vùng lân cận xung quanh pixel và tìm trung bình trọng số Gaussian của nó. Bộ lọc Gaussian này là một chức năng của riêng không gian, nghĩa là các pixel lân cận được xem xét trong khi lọc. Nó không xem xét liệu các pixel có cường độ gần giống nhau hay không. Nó không xem xét liệu pixel có phải là pixel cạnh hay không. Vì vậy, nó cũng làm mờ các cạnh, điều mà chúng tôi không muốn làm

Lọc song phương cũng sử dụng bộ lọc Gaussian trong không gian, nhưng thêm một bộ lọc Gaussian là chức năng của sự khác biệt pixel. Hàm Gaussian của không gian đảm bảo rằng chỉ các pixel lân cận mới được xem xét làm mờ, trong khi hàm Gaussian về chênh lệch cường độ đảm bảo rằng chỉ những pixel có cường độ tương tự với pixel trung tâm mới được xem xét làm mờ. Vì vậy, nó bảo toàn các cạnh vì các pixel ở các cạnh sẽ có sự thay đổi cường độ lớn

Làm cách nào để tính giá trị trung bình và độ lệch chuẩn của hình ảnh trong Python?

có nghĩa là. chỉ cần chia tổng giá trị pixel cho tổng số - số pixel trong tập dữ liệu được tính là len[df] * image_size * image_size. độ lệch chuẩn. sử dụng phương trình sau. total_std = sqrt[psum_sq / count - total_mean ** 2]

Độ lệch chuẩn của một hình ảnh là gì?

Độ lệch chuẩn [Σ] cung cấp thước đo độ phân tán của cường độ mức xám của hình ảnh và có thể được hiểu là thước đo công suất .

OpenCV có tốt cho xử lý ảnh không?

OpenCV là thư viện [gói] mã nguồn mở, chỉ dành cho CPU được xây dựng sẵn, được sử dụng rộng rãi cho các ứng dụng xử lý hình ảnh, máy học và thị giác máy tính. It supports a good variety of programming languages including Python.

Tọa độ của một hình ảnh trong OpenCV là gì?

Hình 5. Trong OpenCV, pixel được truy cập theo [x, y]-tọa độ của chúng. Gốc, [0, 0], nằm ở trên cùng bên trái của hình ảnh. Hình ảnh OpenCV không được lập chỉ mục, trong đó giá trị x đi từ trái sang phải [số cột] và giá trị y đi từ trên xuống dưới [số hàng].

Chủ Đề