Hướng dẫn downsampling image python - lấy mẫu hình ảnh python

Khi lấy mẫu, nội suy là điều sai trái. Luôn luôn sử dụng một cách tiếp cận tổng hợp.

Tôi sử dụng khối có nghĩa là để làm điều này, sử dụng một "yếu tố" để giảm độ phân giải.

import numpy as np
from scipy import ndimage

def block_mean(ar, fact):
    assert isinstance(fact, int), type(fact)
    sx, sy = ar.shape
    X, Y = np.ogrid[0:sx, 0:sy]
    regions = sy//fact * (X//fact) + Y//fact
    res = ndimage.mean(ar, labels=regions, index=np.arange(regions.max() + 1))
    res.shape = (sx//fact, sy//fact)
    return res

Ví dụ: mảng hình dạng (100, 200) sử dụng hệ số 5 (5x5 khối) dẫn đến kết quả mảng (20, 40):

ar = np.random.rand(20000).reshape((100, 200))
block_mean(ar, 5).shape  # (20, 40)


Trong chương trình này, chúng tôi sẽ xuống mẫu một hình ảnh. Downsampling đang làm giảm độ phân giải không gian trong khi vẫn giữ biểu diễn 2D của hình ảnh. Nó thường được sử dụng để phóng to hình ảnh. Chúng tôi sẽ sử dụng hàm pyrdown () trong thư viện OpenCV để hoàn thành tác vụ này.

Ảnh gốc

Hướng dẫn downsampling image python - lấy mẫu hình ảnh python

Thuật toán

Step 1: Fead the image.
Step 2: Pass the image as a parameter to the pyrdown() function.
Step 3: Display the output.

Mã ví dụ

import cv2

image = cv2.imread('testimage.jpg')
print("Size of image before pyrDown: ", image.shape)

image = cv2.pyrDown(image)
print("Size of image after pyrDown: ", image.shape)
cv2.imshow('DownSample', image)

Đầu ra

Size of image before pyrDown:  (350, 700, 3)
Size of image after pyrDown:  (175, 350, 3)

Hướng dẫn downsampling image python - lấy mẫu hình ảnh python

Giải trình

Nếu chúng ta quan sát kích thước của hình ảnh trước và sau khi sử dụng chức năng pyrdown, chúng ta thấy rằng kích thước bị giảm, tức là, chúng ta đã giảm hình ảnh.

Hướng dẫn downsampling image python - lấy mẫu hình ảnh python

Cập nhật vào ngày 17-Mar-2021 08:28:17

  • Câu hỏi và câu trả lời liên quan
  • Lấy mẫu một hình ảnh bằng opencv
  • Vẽ một hình elip trên một hình ảnh bằng OpenCV
  • Đọc một hình ảnh bằng mô -đun Python OpenCV
  • Phim hoạt hình một hình ảnh sử dụng opencv trong Python?
  • Vẽ hình chữ nhật trên hình ảnh bằng opencv
  • Phát hiện các đường viền trong một hình ảnh bằng opencv
  • Vẽ biên giới xung quanh một hình ảnh bằng opencv
  • Thực hiện thao tác mở trên hình ảnh bằng OpenCV
  • Vẽ một dòng trên một hình ảnh bằng OpenCV
  • Làm mờ một hình ảnh bằng hàm openCV blur ()
  • Làm mờ một hình ảnh bằng hàm openCV medianblur ()
  • Làm xói mòn một hình ảnh bằng hàm openCV erode ()
  • Thực hiện ngưỡng nhị phân trên hình ảnh bằng OpenCV
  • Thực hiện ngưỡng cắt ngắn trên hình ảnh bằng OpenCV
  • Thực hiện ngưỡng không trên hình ảnh bằng OpenCV

Hình ảnh mẫu của Python Downs

Với tác phẩm này, chúng ta sẽ xem xét một vài ví dụ khác nhau về các vấn đề hình ảnh Python Downsample trong ngôn ngữ máy tính.

skimage_resized = resize(mask, (mask.shape[0]//2, mask.shape[1]//2), mode='constant')
print(skimage_resized.shape, np.unique(mask_resized))
skimage_rescale = rescale(mask, 1.0/2.0, mode='constant')
print(skimage_rescale.shape, np.unique(mask_resized))
ndimage_resized = ndimage.interpolation.zoom(mask, 0.5)
print(ndimage_resized.shape, np.unique(mask_resized))
cv2_resized = cv2.resize(mask, (mask.shape[0]//2, mask.shape[1]//2),
                        interpolation=cv2.INTER_NEAREST)
print(cv2_resized.shape, np.unique(mask_resized))
mask_pil = Image.fromarray(mask, mode=None)
pil_resized = mask_pil.thumbnail((mask.shape[0]//2, mask.shape[1]//2), Image.NEAREST)
print(skimage_resized.shape, np.unique(pil_resized))

Vấn đề với hình ảnh Python Downsample có thể được giải quyết theo nhiều cách khác nhau, tất cả đều được nêu trong danh sách tiếp theo.

import numpy as np
from scipy import ndimage
def block_mean(ar, fact):
    assert isinstance(fact, int), type(fact)
    sx, sy = ar.shape
    X, Y = np.ogrid[0:sx, 0:sy]
    regions = sy/fact * (X/fact) + Y/fact
    res = ndimage.mean(ar, labels=regions, index=np.arange(regions.max() + 1))
    res.shape = (sx/fact, sy/fact)
    return res
 # Example:
ar = np.random.rand(20000).reshape((100, 200))
block_mean(ar, 5).shape  # (20, 40)

Chúng tôi đã giải thích cách khắc phục vấn đề hình ảnh Python Downsample bằng cách sử dụng nhiều ví dụ được lấy từ thế giới thực.

Hình ảnh mẫu là gì?

Downsampling là giảm độ phân giải không gian trong khi vẫn giữ cùng một đại diện hai chiều (2D). Nó thường được sử dụng để giảm các yêu cầu lưu trữ và/hoặc truyền của hình ảnh. UPSampling là sự gia tăng của độ phân giải không gian trong khi vẫn giữ biểu diễn 2D của hình ảnh.

Làm thế nào để bạn lấy mẫu một hình ảnh trong Python?

Xử lý hình ảnh với Python: Lấy mẫu hình ảnh kỹ thuật số và

  • Nhập khẩu Numpy dưới dạng NP. Nhập matplotlib.pyplot như plt. từ Skimage.io Nhập Imshow, Imread.
  • def circle_image (x, y): x, y = np.meshgrid (x, y)
  • pizza = imread ('pizza.jpg') từ skimage.transform nhập Downscale_Local_Mean. các yếu tố = 3 ** np.arange (1, 5)

Làm thế nào để bạn định cư một hình ảnh trong Python?

Để thay đổi kích thước hoặc mở rộng một hình ảnh trong Python, hãy sử dụng CV2. thay đổi kích thước () function.opencv hình ảnh tỷ lệ trong python

  • Trong khi bảo toàn tỷ lệ khung hình (tỷ lệ chiều cao trên chiều rộng của hình ảnh được duy trì), thì giảm (giảm kích thước của hình ảnh).
  • Trong khi không bảo toàn tỷ lệ khung hình,
  • Thay đổi kích thước hình ảnh theo chiều rộng và chiều cao cụ thể.

Downsample Python là gì?

Downsampling có nghĩa là để giảm số lượng mẫu có lớp thiên vị. Mã nguồn Python khoa học dữ liệu này thực hiện như sau: 1. Nhập các thư viện cần thiết và dữ liệu mống mắt từ bộ dữ liệu Sklearn. 2.06-JUL-2022

Downsampling có làm giảm chất lượng hình ảnh không?

Theo Adobe, khi bạn giảm số lượng pixel (lấy mẫu xuống), ứng dụng sẽ loại bỏ dữ liệu. Khi dữ liệu bị xóa, hình ảnh cũng suy giảm ở một mức độ nào đó, mặc dù không nhiều như khi bạn tăng mẫu.21-NOV-2018

Tại sao chúng ta cần lấy mẫu?

(1) Để làm cho tín hiệu âm thanh kỹ thuật số nhỏ hơn bằng cách giảm tốc độ lấy mẫu hoặc kích thước mẫu (bit trên mỗi mẫu). Downsampling được thực hiện để giảm tốc độ bit khi truyền qua băng thông giới hạn hoặc để chuyển đổi sang định dạng âm thanh hạn chế hơn.

Python có tốt cho xử lý hình ảnh không?

Python trở thành một lựa chọn thích hợp cho các nhiệm vụ xử lý hình ảnh như vậy. Điều này là do sự phổ biến ngày càng tăng của nó như là một ngôn ngữ lập trình khoa học và sự sẵn có miễn phí của nhiều công cụ xử lý hình ảnh trạng thái nghệ thuật trong hệ sinh thái của nó. Chúng ta hãy xem xét một số thư viện Python thường được sử dụng cho các tác vụ thao tác hình ảnh.

Làm thế nào để bạn phân tích một hình ảnh trong Python?

Công cụ xử lý hình ảnh

  • OpenCV. Nó là viết tắt của Thư viện tầm nhìn máy tính nguồn mở.
  • Hình ảnh scikit. Nó là một thư viện nguồn mở được sử dụng để tiền xử lý hình ảnh.
  • Pil/Gối. PIL là viết tắt của Thư viện hình ảnh Python và Gối là Fork Fork thân thiện của Alex Clark và những người đóng góp.
  • NumPy.
  • Mahotas.

Lấy mẫu của một hình ảnh là gì?

1.7, một hình ảnh được lấy mẫu là một mảng các giá trị hình ảnh được lấy mẫu thường được sắp xếp theo định dạng cột hàng. Mỗi phần tử mảng được lập chỉ mục thường được gọi là phần tử hình ảnh hoặc viết tắt là pixel. Thuật ngữ pel cũng đã được sử dụng, nhưng đã mờ dần trong việc sử dụng có lẽ vì nó ít mô tả hơn và không hấp dẫn.

Làm thế nào để tôi thay đổi kích thước một hình ảnh?

Để làm đươc như vậy, hãy tuân theo những bước sau:

  • Mở hình ảnh bằng cách nhấp chuột phải vào nó và chọn mở với hoặc nhấp vào tệp, sau đó mở trên menu trên cùng.
  • Trên tab Home, dưới hình ảnh, nhấp vào thay đổi kích thước.
  • Điều chỉnh kích thước hình ảnh theo tỷ lệ phần trăm hoặc pixel khi bạn thấy phù hợp.
  • Nhấp vào OK khi bạn đã thực hiện các điều chỉnh của mình.