# Signal and Image Processing

**URL:** https://discourse.julialang.org/c/domain/dsp/26.md

[Latest](https://discourse.julialang.org/latest.md) · [Categories](https://discourse.julialang.org/categories.md) · [Tags](https://discourse.julialang.org/tags.md)

---

## [About the Signal and Image Processing category](https://discourse.julialang.org/t/about-the-signal-and-image-processing-category/384)

<div class="topic-metadata">

**Author:** [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Replies:** 1\
**Last updated:** [May 9, 2023, 6:02am UTC](https://discourse.julialang.org/t/about-the-signal-and-image-processing-category/384 "2023-05-09T06:02:11Z")

</div>

Discussion of digital signal processing (DSP) and audio-related topics, including playing, recording, storing, generating, manipulating, reproducing, etc. This category is about signals, sound, channels, tracks, encodin…

---

## [Find area and perimeters of labeled segments for binary image](https://discourse.julialang.org/t/find-area-and-perimeters-of-labeled-segments-for-binary-image/124552)

<div class="topic-metadata">

**Author:** [@Alex\_Milns](https://discourse.julialang.org/u/Alex_Milns)\
**Replies:** 3\
**Last updated:** [September 19, 2026, 2:11am UTC](https://discourse.julialang.org/t/find-area-and-perimeters-of-labeled-segments-for-binary-image/124552 "2026-09-19T02:11:29Z")

</div>

Hi! I try to calculate area and perimeters of labeled regions of binary image. For example: using Images, ImageView, ImageSegmentation, TestImages, IndirectArrays, ImageMorphology img = testimage("blobs") # f = Adaptive…

---

## [ODS from Video using Optical Flow](https://discourse.julialang.org/t/ods-from-video-using-optical-flow/139488)

<div class="topic-metadata">

**Author:** [@Jake](https://discourse.julialang.org/u/Jake)\
**Replies:** 0\
**Last updated:** [September 15, 2026, 7:55pm UTC](https://discourse.julialang.org/t/ods-from-video-using-optical-flow/139488 "2026-09-15T19:55:25Z")

</div>

The video ODS (Operating Deflection Shape) used by Vibrant using the same Farneback algorithm as used in the ImageTracking.jl package, if I understand rightly. A cursory look at ImageTracking.jl shows it does the optica…

---

## [Sparse vector in imfilter kernel](https://discourse.julialang.org/t/sparse-vector-in-imfilter-kernel/139133)

<div class="topic-metadata">

**Author:** [@xor0110](https://discourse.julialang.org/u/xor0110)\
**Replies:** 0\
**Last updated:** [September 1, 2026, 7:00am UTC](https://discourse.julialang.org/t/sparse-vector-in-imfilter-kernel/139133 "2026-09-01T07:00:33Z")

</div>

What would it take to make ImageFiltering.imfilter work with sparse or “dilated” kernels? I know it supports OffsetArrays, for instance. We basically need to skip every few values so a filter like \[-1,0,0,0,1\] only perfo…

---

## [Designing high pass filters with remez from DSP](https://discourse.julialang.org/t/designing-high-pass-filters-with-remez-from-dsp/139064)

<div class="topic-metadata">

**Author:** [@Miroboru](https://discourse.julialang.org/u/Miroboru)\
**Replies:** 2\
**Last updated:** [August 27, 2026, 12:01pm UTC](https://discourse.julialang.org/t/designing-high-pass-filters-with-remez-from-dsp/139064 "2026-08-27T12:01:16Z")

</div>

When using the remez function from DSP to design high pass filters, the result is not what I expect. Here is an MWE (1.12.7 plus latest DSP): using DSP h = remez(32, \[(0.0, 0.2) =\> 0.0, (0.3, 0.5) =\> 1.0\]) h\_obj = Poly…

---

## [State of Audio DSP & Feature Extraction in Julia: Gaps, Priorities, and Future Directions](https://discourse.julialang.org/t/state-of-audio-dsp-feature-extraction-in-julia-gaps-priorities-and-future-directions/138722)

<div class="topic-metadata">

**Author:** [@blah\_blah.jl](https://discourse.julialang.org/u/blah_blah.jl)\
**Replies:** 51\
**Last updated:** [August 20, 2026, 3:24pm UTC](https://discourse.julialang.org/t/state-of-audio-dsp-feature-extraction-in-julia-gaps-priorities-and-future-directions/138722 "2026-08-20T15:24:15Z")

</div>

Hey everyone, ​I’ve been exploring signal processing in Julia and working on some basic DSP and communications tools. As I look into expanding toward audio signal processing, Music Information Retrieval (MIR), and featu…

---

## [Is there a Julia equivalent of MATLAB’s rcosdesign?](https://discourse.julialang.org/t/is-there-a-julia-equivalent-of-matlab-s-rcosdesign/138352)

<div class="topic-metadata">

**Author:** [@blah\_blah.jl](https://discourse.julialang.org/u/blah_blah.jl)\
**Replies:** 7\
**Last updated:** [August 18, 2026, 12:52pm UTC](https://discourse.julialang.org/t/is-there-a-julia-equivalent-of-matlab-s-rcosdesign/138352 "2026-08-18T12:52:28Z")

</div>

I’m porting a QPSK simulation from MATLAB to Julia and need a root-raised-cosine filter. MATLAB provides: rrc\_filter = rcosdesign(beta, span, samples\_per\_symbol, "sqrt"); I checked DSP.jl, but rcosdesign does not appe…

---

## [I got bored and built a 2x2 MIMO FxNLMS ANC simulator in Julia + C23](https://discourse.julialang.org/t/i-got-bored-and-built-a-2x2-mimo-fxnlms-anc-simulator-in-julia-c23/138826)

<div class="topic-metadata">

**Author:** [@blah\_blah.jl](https://discourse.julialang.org/u/blah_blah.jl)\
**Replies:** 0\
**Last updated:** [August 15, 2026, 1:42pm UTC](https://discourse.julialang.org/t/i-got-bored-and-built-a-2x2-mimo-fxnlms-anc-simulator-in-julia-c23/138826 "2026-08-15T13:42:43Z")

</div>

Hey folks, Today morning was aggressively boring, so naturally I ended up building a 2x2 MIMO active noise control simulator. I have recently started poking around the border between DSP and control systems, and for so…

---

## [\[ANN\]Introducing RRCFilters.jl — a small Julia toolkit for digital communications](https://discourse.julialang.org/t/ann-introducing-rrcfilters-jl-a-small-julia-toolkit-for-digital-communications/138700)

<div class="topic-metadata">

**Author:** [@blah\_blah.jl](https://discourse.julialang.org/u/blah_blah.jl)\
**Replies:** 0\
**Last updated:** [August 9, 2026, 7:52am UTC](https://discourse.julialang.org/t/ann-introducing-rrcfilters-jl-a-small-julia-toolkit-for-digital-communications/138700 "2026-08-09T07:52:38Z")

</div>

Hey everyone! I recently published my first Julia DSP and digital-communications package: Somewhat embarrassingly, this project began with a slightly petty amount of spite toward MATLAB. I wanted to implement the commu…

---

## [Announcing ThinkDSP.jl: a Julia toolkit for signals, spectra, and audio](https://discourse.julialang.org/t/announcing-thinkdsp-jl-a-julia-toolkit-for-signals-spectra-and-audio/138660)

<div class="topic-metadata">

**Author:** [@blah\_blah.jl](https://discourse.julialang.org/u/blah_blah.jl)\
**Replies:** 2\
**Last updated:** [August 7, 2026, 4:01pm UTC](https://discourse.julialang.org/t/announcing-thinkdsp-jl-a-julia-toolkit-for-signals-spectra-and-audio/138660 "2026-08-07T16:01:17Z")

</div>

I have always liked working with DSP in Python. Libraries such as the original Think DSP code make it easy to move from a signal, to a sampled wave, to a spectrum, apply a filter, and reconstruct the result without losin…

---

## [\[ANN\] NLMSFiltering.jl — adaptive noise cancellation with a zero-alloc inner loop](https://discourse.julialang.org/t/ann-nlmsfiltering-jl-adaptive-noise-cancellation-with-a-zero-alloc-inner-loop/138642)

<div class="topic-metadata">

**Author:** [@blah\_blah.jl](https://discourse.julialang.org/u/blah_blah.jl)\
**Replies:** 3\
**Last updated:** [August 7, 2026, 5:01am UTC](https://discourse.julialang.org/t/ann-nlmsfiltering-jl-adaptive-noise-cancellation-with-a-zero-alloc-inner-loop/138642 "2026-08-07T05:01:24Z")

</div>

I have been building an adaptive noise-cancellation toolkit in Julia and wanted to share it + get eyes on a couple of numerics questions. What it is: five adaptive-filter families (NLMS, Leaky NLMS, VSS-NLMS, VSS Leaky …

---

## [DRM Radio 📻 & Julia](https://discourse.julialang.org/t/drm-radio-julia/136346)

<div class="topic-metadata">

**Author:** [@raman\_kumar](https://discourse.julialang.org/u/raman_kumar)\
**Replies:** 10\
**Last updated:** [May 25, 2026, 3:59pm UTC](https://discourse.julialang.org/t/drm-radio-julia/136346 "2026-05-25T15:59:05Z")

</div>

I see that Digital Radio Mondiale is replacing analog radios in many countries. Can Julia be used in this DE9180 Demonstration and Prototyping Kit for the DRM1000 Broadcast Receiver Module | CMLMicro ? CMLMicro is using …

---

## [Zero copy conversion of FixedPointArrays to base types without specialization](https://discourse.julialang.org/t/zero-copy-conversion-of-fixedpointarrays-to-base-types-without-specialization/135668)

<div class="topic-metadata">

**Author:** [@csvance](https://discourse.julialang.org/u/csvance)\
**Replies:** 3\
**Last updated:** [February 16, 2026, 10:47pm UTC](https://discourse.julialang.org/t/zero-copy-conversion-of-fixedpointarrays-to-base-types-without-specialization/135668 "2026-02-16T22:47:09Z")

</div>

I mostly work with obscure image formats like lossless JPEG, but recently I needed ImageIO to load some other types of images for a training data pipeline. It seems to return images with fixed point types, and all of my …

---

## [Astrophotographic denoising without machine learning](https://discourse.julialang.org/t/astrophotographic-denoising-without-machine-learning/133986)

<div class="topic-metadata">

**Author:** [@brainandforce](https://discourse.julialang.org/u/brainandforce)\
**Replies:** 11\
**Last updated:** [November 20, 2025, 8:10pm UTC](https://discourse.julialang.org/t/astrophotographic-denoising-without-machine-learning/133986 "2025-11-20T20:10:47Z")

</div>

I’m on a quest to approach the hobby of astrophotography from a data science perspective. I’ve put several restrictions on myself (all processing is done with free software, no machine learned tools are allowed) because …

---

## [Symbolic Fourier Transforms for Educational DSP](https://discourse.julialang.org/t/symbolic-fourier-transforms-for-educational-dsp/134001)

<div class="topic-metadata">

**Author:** [@franalbani](https://discourse.julialang.org/u/franalbani)\
**Replies:** 1\
**Last updated:** [November 20, 2025, 1:58pm UTC](https://discourse.julialang.org/t/symbolic-fourier-transforms-for-educational-dsp/134001 "2025-11-20T13:58:38Z")

</div>

Hi! I’m new to Julia and wondering if its the right tool for a educational project. I would like to make a program that lets the user (a teacher or student) to select and customize some elemental signals that will then…

---

## [Fourier transform of a Dual vector](https://discourse.julialang.org/t/fourier-transform-of-a-dual-vector/118538)

<div class="topic-metadata">

**Author:** [@cdqb](https://discourse.julialang.org/u/cdqb)\
**Replies:** 4\
**Last updated:** [November 18, 2025, 7:46am UTC](https://discourse.julialang.org/t/fourier-transform-of-a-dual-vector/118538 "2025-11-18T07:46:47Z")

</div>

I am trying to Fourier transform a vector of Dual numbers (or rather, ForwardDiff is trying to do that for me as part of a bigger task). However, this does not seem to work with the perhaps most commonly used package FFT…

---

## [Fastest way to access individual frames from .avi video?](https://discourse.julialang.org/t/fastest-way-to-access-individual-frames-from-avi-video/133339)

<div class="topic-metadata">

**Author:** [@mastrof](https://discourse.julialang.org/u/mastrof)\
**Replies:** 3\
**Last updated:** [October 22, 2025, 2:42am UTC](https://discourse.julialang.org/t/fastest-way-to-access-individual-frames-from-avi-video/133339 "2025-10-22T02:42:20Z")

</div>

I have a collection of relatively large videos (~10k frames), and I need to perform some operation on each of these frames, independently. In an ideal world I would have each frame as a separate tiff, but these are .avi…

---

## [\[ANN\] New version for CameraCalibrations](https://discourse.julialang.org/t/ann-new-version-for-cameracalibrations/131603)

<div class="topic-metadata">

**Author:** [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Replies:** 0\
**Last updated:** [August 14, 2025, 11:57am UTC](https://discourse.julialang.org/t/ann-new-version-for-cameracalibrations/131603 "2025-08-14T11:57:04Z")

</div>

I’m happy to share that CameraCalibrations.jl, a Julia package for camera calibration, no longer relies on cv2 via PythonCall. Instead, it now directly uses OpenCV.jl for both checkerboard detection and camera model fitt…

---

## [Nyquist-Shannon sampling theorem question](https://discourse.julialang.org/t/nyquist-shannon-sampling-theorem-question/129892)

<div class="topic-metadata">

**Author:** [@Ju\_ska](https://discourse.julialang.org/u/Ju_ska)\
**Replies:** 7\
**Last updated:** [June 18, 2025, 9:07am UTC](https://discourse.julialang.org/t/nyquist-shannon-sampling-theorem-question/129892 "2025-06-18T09:07:37Z")

</div>

Hi, I always thought that sampling at Fs \>= 2Fmax is the thing to do when sampling a signal. But I came across a school document that says if Fmin is also given, the sampling rate should be Fs \>= 2(Fmax - Fmin). It pu…

---

## [Histogram equalization with OpenCV](https://discourse.julialang.org/t/histogram-equalization-with-opencv/126421)

<div class="topic-metadata">

**Author:** [@heliosdrm](https://discourse.julialang.org/u/heliosdrm)\
**Replies:** 2\
**Last updated:** [June 11, 2025, 11:42am UTC](https://discourse.julialang.org/t/histogram-equalization-with-opencv/126421 "2025-06-11T11:42:13Z")

</div>

I am using OpenCV.jl for image processing and I want to increase the contrast of an image using adaptive histogram equalization. I can create the CLAHE object with OpenCV.createCLAHE, but that is an “C++ smart pointer of…

---

## [Automating the Equating of Transfer Functions with Symbolic Representations Using SymPy.jl](https://discourse.julialang.org/t/automating-the-equating-of-transfer-functions-with-symbolic-representations-using-sympy-jl/129552)

<div class="topic-metadata">

**Author:** [@theo.bruelhart](https://discourse.julialang.org/u/theo.bruelhart)\
**Replies:** 3\
**Last updated:** [June 2, 2025, 12:21pm UTC](https://discourse.julialang.org/t/automating-the-equating-of-transfer-functions-with-symbolic-representations-using-sympy-jl/129552 "2025-06-02T12:21:03Z")

</div>

I am currently working on a project where I need to equate a transfer function with its symbolic representations using real components (some resistors and capacitors). Up to this point, I have been manually performing th…

---

## [Bodeplot Sampling Resolution Adjustable?](https://discourse.julialang.org/t/bodeplot-sampling-resolution-adjustable/129544)

<div class="topic-metadata">

**Author:** [@theo.bruelhart](https://discourse.julialang.org/u/theo.bruelhart)\
**Replies:** 7\
**Last updated:** [June 2, 2025, 9:18am UTC](https://discourse.julialang.org/t/bodeplot-sampling-resolution-adjustable/129544 "2025-06-02T09:18:11Z")

</div>

Hi How can I adjust the sampling resolution of Bode plots? I am comparing the frequency responses of different filters, and some plots appear undersampled (see the blue curve in the illustration below).

---

## [Using ControlSystemsBase, DSP: Exemplary Use Case of Electronic Filter Design](https://discourse.julialang.org/t/using-controlsystemsbase-dsp-exemplary-use-case-of-electronic-filter-design/127349)

<div class="topic-metadata">

**Author:** [@theo.bruelhart](https://discourse.julialang.org/u/theo.bruelhart)\
**Replies:** 2\
**Last updated:** [June 1, 2025, 10:38pm UTC](https://discourse.julialang.org/t/using-controlsystemsbase-dsp-exemplary-use-case-of-electronic-filter-design/127349 "2025-06-01T22:38:07Z")

</div>

Hi Today, I have been experimenting with basic functions from the ControlSystemsBase.jl and DSP.jl packages. Some guidance for the below mentioned approach would be appreciated. Given the simple transfer function T=Vou…

---

## [2D-FFT gives nonzero imaginary value at \[1,1\]](https://discourse.julialang.org/t/2d-fft-gives-nonzero-imaginary-value-at-1-1/129500)

<div class="topic-metadata">

**Author:** [@heliosdrm](https://discourse.julialang.org/u/heliosdrm)\
**Replies:** 1\
**Last updated:** [May 31, 2025, 11:08am UTC](https://discourse.julialang.org/t/2d-fft-gives-nonzero-imaginary-value-at-1-1/129500 "2025-05-31T11:08:12Z")

</div>

Perhaps this is just my imperfect knowledge of how FFT works, but according to the theory, the Fourier transform at zero frequency of real-valued data is always real, and I thought that this should also happen with FFT. …

---

## [Monotonic smoothing of noisy data](https://discourse.julialang.org/t/monotonic-smoothing-of-noisy-data/93184)

<div class="topic-metadata">

**Author:** [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Replies:** 21\
**Last updated:** [May 17, 2025, 3:47pm UTC](https://discourse.julialang.org/t/monotonic-smoothing-of-noisy-data/93184 "2025-05-17T15:47:46Z")

</div>

Is there a package in Julia, or a simple algorithm, to perform monotonic smoothing of noisy data? See this Python example. NB: it is assumed that we do not know of any monotonic function or model that could fit the da…

---

## [Struggling with LibSndFile.jl, WAV.jl outputs slightly non-standard 24bit PCM files](https://discourse.julialang.org/t/struggling-with-libsndfile-jl-wav-jl-outputs-slightly-non-standard-24bit-pcm-files/129044)

<div class="topic-metadata">

**Author:** [@Perrin\_Meyer](https://discourse.julialang.org/u/Perrin_Meyer)\
**Replies:** 11\
**Last updated:** [May 16, 2025, 4:50pm UTC](https://discourse.julialang.org/t/struggling-with-libsndfile-jl-wav-jl-outputs-slightly-non-standard-24bit-pcm-files/129044 "2025-05-16T16:50:14Z")

</div>

I’m struggling with loading a wav file using LibSndFile.jl julia\> using FileIO: load, save, loadstreaming, savestreaming julia\> import LibSndFile julia\> x = load("JolieHollandSacha.wav") (\[0.0 0.0; 0.0 0.0; … ; 0.0 0.…

---

## [Estimate affine transformations between images](https://discourse.julialang.org/t/estimate-affine-transformations-between-images/128798)

<div class="topic-metadata">

**Author:** [@heliosdrm](https://discourse.julialang.org/u/heliosdrm)\
**Replies:** 0\
**Last updated:** [May 7, 2025, 2:11pm UTC](https://discourse.julialang.org/t/estimate-affine-transformations-between-images/128798 "2025-05-07T14:11:40Z")

</div>

Is there any package implementing Lucchese’s et al. algorithm to estimate the affine transformation between two images - or a similar algorithm that does not use image features, but the whole images? If not, would it be…

---

## [Is there a package for Sliding Discrete Fourier Transforms?](https://discourse.julialang.org/t/is-there-a-package-for-sliding-discrete-fourier-transforms/122320)

<div class="topic-metadata">

**Author:** [@heliosdrm](https://discourse.julialang.org/u/heliosdrm)\
**Replies:** 4\
**Last updated:** [January 16, 2025, 2:13pm UTC](https://discourse.julialang.org/t/is-there-a-package-for-sliding-discrete-fourier-transforms/122320 "2025-01-16T14:13:53Z")

</div>

I haven’t found any specific package for Sliding Discrete Fourier Transforms. If there is no one yet, I would be inclined to try draft one (with the simplest methods to start with), but in that case I would appreciate so…

---

## [Blur image](https://discourse.julialang.org/t/blur-image/123670)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 2\
**Last updated:** [December 10, 2024, 5:34pm UTC](https://discourse.julialang.org/t/blur-image/123670 "2024-12-10T17:34:18Z")

</div>

Is there a package that can blur an image (represented as a Matrix{RGB{Float16}}, or anything similar)? No need for fancy bokeh simulation, just some basic Gaussian blur with a given radius, or whatever is fast. Asking …

---

## [How to apply a butterworth filter in a loop?](https://discourse.julialang.org/t/how-to-apply-a-butterworth-filter-in-a-loop/122818)

<div class="topic-metadata">

**Author:** [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Replies:** 6\
**Last updated:** [December 4, 2024, 7:16pm UTC](https://discourse.julialang.org/t/how-to-apply-a-butterworth-filter-in-a-loop/122818 "2024-12-04T19:16:08Z")

</div>

I constructed a Butterworth filter, which works fine: using ControlPlots, DSP # Define the cut-off frequency in Hz cut\_off\_freq = 2.0 Wn = cut\_off\_freq # Define the sampling time in seconds dt = 0.05 fs = 1/dt sim\_tim…

[Next page](https://discourse.julialang.org/c/domain/dsp/26.md?page=1)
