Câu hỏi của tôi tóm tắt: được phân phối 1d bằng Python, làm cách nào để có thể xác định các vùng của phân phối đó có kiểu sine giống như nhấp nhô?Python: Xác định các mẫu nhấp nhô trong phân phối 1d
Tôi đang làm việc để xác định hình ảnh trong quá trình quét trang các tài liệu lịch sử. Những hình ảnh này về cơ bản luôn có chiều rộng toàn bộ trong phạm vi quét (tức là, về cơ bản chúng không bao giờ được đính kèm với văn bản). Điều này khiến tôi tin rằng giải pháp đơn giản nhất là xóa các vùng quét trang có chứa dòng văn bản.
Sử dụng đoạn mã dưới đây, người ta có thể đọc một hình ảnh vào bộ nhớ và đo sáng điểm ảnh tổng hợp cho mỗi hàng ngang bức hình, trên xuống dưới, chuyển một hình ảnh đầu vào cho cốt truyện dưới đây:
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from scipy.ndimage import imread
import numpy as np
import sys
img = imread(sys.argv[1])
row_sums = list([(sum(r)/len(r)) for r in img ])
# the size of the returned array = size of row_sums input array
window_size = 150
running_average_y = np.convolve(row_sums, np.ones((window_size,))/window_size, mode='same')
# plot the y dimension pixel distribution
plt.plot(running_average_y)
plt.show()
Input image: cốt truyện
Output:
Với phân bố này, bây giờ tôi muốn xác định các khu vực của đường cong có mô hình nhấp nhô thông thường mà người ta thấy trong phần ba đầu tiên và cuối cùng của cốt truyện (nói gần). Những người khác có ý tưởng về cách tiếp cận nhiệm vụ đó không?
Lúc đầu, tôi đã thử lắp một mô hình tuyến tính cho toàn bộ phân phối 1d, nhưng điều đó không thành công vì tất cả các loại lý do. Bây giờ tôi nghĩ rằng có thể có ý nghĩa để thử và điều chỉnh một thứ gì đó giống như sóng sin đến các đoạn đường cong, nhưng điều đó có vẻ như quá mức cần thiết. Những người khác có ý tưởng về cách tốt nhất để tiếp cận nhiệm vụ này không? Bất kỳ đề xuất hoặc thông tin chi tiết nào cũng sẽ được đánh giá cao!
Bạn có thể muốn hỏi qua tại https://dsp.stackexchange.com/ – wwii
Cái gì mà không mảnh-khôn ngoan miền tần số như [DTFT] (https: //en.wikipedia. org/wiki/Discrete-time_Fourier_transform) hoặc [Wavelet transform] (https://en.wikipedia.org/wiki/Wavelet_transform)? Không phải là một chuyên gia, nhưng có vẻ như một cái gì đó có thể giúp đỡ. –
Có thể bạn muốn làm khớp nối spline theo thứ tự phù hợp. –