MATLAB user since 1987. MathWorker since 1993. Amateur French horn player. MATLAB design and development, image processing algorithms.

Image processing blog: https://blogs.mathworks.com/steve/

Published

Plotting a* and b* colors

Today's blog post comes from planning one topic, but then taking a sharp left turn and doing something else completely. I...

2 months ago

Answered

Having graycomatrix rescaling problem

Here is the doc for the NumLevels parameter: Number of gray levels, specified as an integer. For example, if NumLevels is 8, gr...

Having graycomatrix rescaling problem

Here is the doc for the NumLevels parameter: Number of gray levels, specified as an integer. For example, if NumLevels is 8, gr...

2 months ago | 0

| accepted

Answered

How to find the center position under the saturation spot signal

Try converting the image to binary using imbinarize and then using regionprops to compute the centroid. rgb = imread('image.bmp...

How to find the center position under the saturation spot signal

Try converting the image to binary using imbinarize and then using regionprops to compute the centroid. rgb = imread('image.bmp...

2 months ago | 0

| accepted

Answered

How to bold x axis labels

Try setting the TickLabelsInterpreter property to 'tex', like this: plot(1:10) ax = gca; ax.XAxis.TickLabelInterpreter = 'tex...

How to bold x axis labels

Try setting the TickLabelsInterpreter property to 'tex', like this: plot(1:10) ax = gca; ax.XAxis.TickLabelInterpreter = 'tex...

3 months ago | 0

Answered

three difference vectors and plots

I have copy-pasted your code below, exactly as entered in your question. It runs and produces the plot with no error. I suggest ...

three difference vectors and plots

I have copy-pasted your code below, exactly as entered in your question. It runs and produces the plot with no error. I suggest ...

3 months ago | 2

Answered

Problem with datetime and daily values

Use a timetable and the retime function. >> T = readtable("data.xlsx"); >> head(T) ans = 8×5 table Date ...

Problem with datetime and daily values

Use a timetable and the retime function. >> T = readtable("data.xlsx"); >> head(T) ans = 8×5 table Date ...

3 months ago | 0

| accepted

Answered

What is the best way to count the occurrences of two table columns together?

In my previous answer, I forgot that grpstats is in the Statistics and Machine Learning Toolbox. Here is an answer using groupsu...

What is the best way to count the occurrences of two table columns together?

In my previous answer, I forgot that grpstats is in the Statistics and Machine Learning Toolbox. Here is an answer using groupsu...

3 months ago | 1

Answered

What is the best way to count the occurrences of two table columns together?

I think grpstats will do what you want: >> grpstats(T,["A" "B"]) ans = 4×3 table A B Grou...

What is the best way to count the occurrences of two table columns together?

I think grpstats will do what you want: >> grpstats(T,["A" "B"]) ans = 4×3 table A B Grou...

3 months ago | 0

Answered

Find peaks not working on my data set

I suspect the issue is with the x-coordinates that you are using to plot the peaks. You are plotting the peaks against the indic...

Find peaks not working on my data set

I suspect the issue is with the x-coordinates that you are using to plot the peaks. You are plotting the peaks against the indic...

3 months ago | 1

| accepted

Answered

Assign values in a matrix

One idea is to use a timetable and the retime function. Suppose I have the following matrix for a 4-minute charge and a 3-minute...

Assign values in a matrix

One idea is to use a timetable and the retime function. Suppose I have the following matrix for a 4-minute charge and a 3-minute...

3 months ago | 0

| accepted

Answered

Code is showing Undefined function 'pixelHull' for input arguments of type 'double'.

I wrote a function called pixelHull as part of my 16-Mar-2018 blog post. You can find the function listing near the bottom of th...

Code is showing Undefined function 'pixelHull' for input arguments of type 'double'.

I wrote a function called pixelHull as part of my 16-Mar-2018 blog post. You can find the function listing near the bottom of th...

4 months ago | 0

| accepted

Published

FFT Spectral Leakage

A MATLAB user recently contacted MathWorks tech support to ask why the output of fft did not meet their expectations, and...

4 months ago

Answered

Binarize image for specific colour

Use the Color Thresholder app to generate the code needed to do this segmentation. See my 14-Oct-2019 and 25-Apr-2014 blog posts...

Binarize image for specific colour

Use the Color Thresholder app to generate the code needed to do this segmentation. See my 14-Oct-2019 and 25-Apr-2014 blog posts...

4 months ago | 0

Answered

Plotting signal of a region of interest

A possible explanation is that you have a variable called "size" or "mean" in your workspace. For example, if you have a variabl...

Plotting signal of a region of interest

A possible explanation is that you have a variable called "size" or "mean" in your workspace. For example, if you have a variabl...

4 months ago | 0

Answered

How to apply a threshold value to the cell array

I think writing a for-loop would be most straightforward way to go. Something like this: for k = 1:numel(C) C_k = C{k}; ...

How to apply a threshold value to the cell array

I think writing a for-loop would be most straightforward way to go. Something like this: for k = 1:numel(C) C_k = C{k}; ...

4 months ago | 0

| accepted

Answered

How to change the font of a pie chart?

The text labels created by the pie function are not controlled by the font properties of the containing axes object. They are in...

How to change the font of a pie chart?

The text labels created by the pie function are not controlled by the font properties of the containing axes object. They are in...

5 months ago | 1

| accepted

Answered

superimpose matrices (n,n,m) to (n,n,1)

Here are some options. Compute and plot the maximum value at each pixel: imagesc(max(a100,[],3)) Compute and plot the minimum...

superimpose matrices (n,n,m) to (n,n,1)

Here are some options. Compute and plot the maximum value at each pixel: imagesc(max(a100,[],3)) Compute and plot the minimum...

5 months ago | 0

| accepted

Answered

Image conversion from uint16 to uint8 mismatch

im2uint8 is using a scale factor of (255/65535), not 1/256. Note that scaling the maximum of the uint16 range, 65535, by 1/256 ...

Image conversion from uint16 to uint8 mismatch

im2uint8 is using a scale factor of (255/65535), not 1/256. Note that scaling the maximum of the uint16 range, 65535, by 1/256 ...

5 months ago | 1

| accepted

Answered

How do I map array values on a logical array

Use logical indexing. C = zeros(size(B)); C(logical(B)) = A

How do I map array values on a logical array

Use logical indexing. C = zeros(size(B)); C(logical(B)) = A

5 months ago | 1

| accepted

Answered

Create a 7x7 convolution kernel which has an equivalent effect to three passes with a 3x3 mean filter.

Convolution is associative: So, your 7x7 convolution kernel would be the convolution of the mean filters: Use the 'full' o...

Create a 7x7 convolution kernel which has an equivalent effect to three passes with a 3x3 mean filter.

Convolution is associative: So, your 7x7 convolution kernel would be the convolution of the mean filters: Use the 'full' o...

5 months ago | 0

Answered

pgm image lossless compression

Write the image to a PNG file. The PNG format uses lossless compression. imwrite(A,'myfile.png') Read it back in using imread....

pgm image lossless compression

Write the image to a PNG file. The PNG format uses lossless compression. imwrite(A,'myfile.png') Read it back in using imread....

5 months ago | 0

Published

How imshowpair and imfuse work

In this post, I'll explore how imshowpair and imfuse work.Reason: I was curious.Last month, I wrote about registering...

5 months ago

Answered

Shade area in graph for multiple y-axes

I rearranged your code a bit, putting both of the first two plotting functions (patch and plot) after the call to yaxis left. I ...

Shade area in graph for multiple y-axes

I rearranged your code a bit, putting both of the first two plotting functions (patch and plot) after the call to yaxis left. I ...

5 months ago | 0

| accepted

Answered

How to add percent change in barplot?

If you want text labels instead of a line plot (Cris' suggestion), then try this code. It gets the Bar object as the output argu...

How to add percent change in barplot?

If you want text labels instead of a line plot (Cris' suggestion), then try this code. It gets the Bar object as the output argu...

5 months ago | 1

| accepted

Answered

Neighbor and center points of matrix

See my 25-Feb-2008 blog post called "Neighbor indexing" for a general technique. You'll need to pay careful attention to what h...

Neighbor and center points of matrix

See my 25-Feb-2008 blog post called "Neighbor indexing" for a general technique. You'll need to pay careful attention to what h...

6 months ago | 1

Answered

Fourier Transform of a signal

The fft function in MATLAB computes something called the discrete Fourier transform. Your problem here is asking you to find som...

Fourier Transform of a signal

The fft function in MATLAB computes something called the discrete Fourier transform. Your problem here is asking you to find som...

6 months ago | 0

Answered

How can I create a 3D array?

Try something like this: for i = 1:n-1 next_image = uigetfile('*p*'); ImageArray = cat(3,ImageArray,next_image); end...

How can I create a 3D array?

Try something like this: for i = 1:n-1 next_image = uigetfile('*p*'); ImageArray = cat(3,ImageArray,next_image); end...

6 months ago | 0

| accepted

Answered

customize export setup to generate SVG

Try this: h = findall(fig,'-property','FontName'); set(h,'FontName','San Serif'); print(fig,'-dsvg','mygraphic.svg')

customize export setup to generate SVG

Try this: h = findall(fig,'-property','FontName'); set(h,'FontName','San Serif'); print(fig,'-dsvg','mygraphic.svg')

6 months ago | 0

Published

Registering Hand-Held Pictures

The typical modern French* horn, pictured below, has about 23 total feet of tubing. At the beginning and the end, the tubing...

6 months ago