Senior Scientist (male/man) and Inventor in one of the world's 10 largest industrial corporations doing image analysis full time. Ph.D. in Optical Sciences specializing in imaging, image processing, and image analysis. 40+ years of military, academic, and (mostly) industrial experience with image analysis programming and algorithm development. Experience designing custom light booths and other imaging systems. Experience with color and monochrome imaging, video analysis, thermal, ultraviolet, hyperspectral, CT, MRI, radiography, profilometry, microscopy, NIR and Raman spectroscopy, etc. on a huge variety of subjects. Member of the Mathworks Community Advisory Board. Be sure to click "View All" in my File Exchange to see ALL of my demos and tutorials: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862

Professional Interests: Image analysis and processing

Answered

legend label for subplots

Can't you just put the legend in one and then users can/will assume the legend applies to all the other 5 plots? Or else put up...

legend label for subplots

Can't you just put the legend in one and then users can/will assume the legend applies to all the other 5 plots? Or else put up...

19 hours ago | 0

Answered

Improve speed reading in a .dat file

You could try fileread() to read in the whole file into one variable in one shot, then go through it parsing it.

Improve speed reading in a .dat file

You could try fileread() to read in the whole file into one variable in one shot, then go through it parsing it.

19 hours ago | 0

Answered

What should I do if the brightness of backgroud is very close to foreground?

They don't look that close. Thresholding should work fairly well. Otherwise use SegNet deep learing if you need to identify tr...

What should I do if the brightness of backgroud is very close to foreground?

They don't look that close. Thresholding should work fairly well. Otherwise use SegNet deep learing if you need to identify tr...

2 days ago | 0

| accepted

Answered

How can I rotate an ellipse randomly

See my attached demos. Adapt as needed.

How can I rotate an ellipse randomly

See my attached demos. Adapt as needed.

2 days ago | 0

Answered

How to use Xlswrite command in actxserver and how to avoid script gets hanged due to hworkbook.close command?

I don't think you need th close function. Just delete that line and it should shutdown just fine.

How to use Xlswrite command in actxserver and how to avoid script gets hanged due to hworkbook.close command?

I don't think you need th close function. Just delete that line and it should shutdown just fine.

2 days ago | 0

Answered

how to find derivative of a function and ploting the surface of function and its derivative

If you have a 2-D array of numbers, you can use surf() to plot a 3-D rendering of it, or imshow() to display it as an image. If...

how to find derivative of a function and ploting the surface of function and its derivative

If you have a 2-D array of numbers, you can use surf() to plot a 3-D rendering of it, or imshow() to display it as an image. If...

3 days ago | 1

Answered

How to fill the gaps on the boundary surface of the cone using MATLAB?

The code didn't run so I repaired and improved it below. Other than that I don't know anything about it because unfortunately t...

How to fill the gaps on the boundary surface of the cone using MATLAB?

The code didn't run so I repaired and improved it below. Other than that I don't know anything about it because unfortunately t...

3 days ago | 1

Answered

Plotting complicated function with asymptotes

Did you try y = linspace(7, 12, 1000); signal = exp(y .* cot(y)) .* sin(y); plot(y, signal, 'b-', 'LineWidth', 2); grid on; ...

Plotting complicated function with asymptotes

Did you try y = linspace(7, 12, 1000); signal = exp(y .* cot(y)) .* sin(y); plot(y, signal, 'b-', 'LineWidth', 2); grid on; ...

4 days ago | 0

| accepted

Answered

Programmatically crop rough image to rectangle

There is no function to find the largest interior rectangle for arbitraily shaped blobs. You can try scanning down with a line ...

Programmatically crop rough image to rectangle

There is no function to find the largest interior rectangle for arbitraily shaped blobs. You can try scanning down with a line ...

4 days ago | 0

Answered

How to center and add margin around image?

Have you tried padarray()? Then use indexing to paste it onto the other image. I'm attaching a copying and pasting demo. Chec...

How to center and add margin around image?

Have you tried padarray()? Then use indexing to paste it onto the other image. I'm attaching a copying and pasting demo. Chec...

4 days ago | 0

Answered

How plot to matrices in 3D

Some possible options: x=1:5; y=3:5; [X, Y] = meshgrid(x, y) z = [-1 2 3; -5 -1 3; -2 4 8; 1 3 7; 4 7 10] subplot(2, 1, 1);...

How plot to matrices in 3D

Some possible options: x=1:5; y=3:5; [X, Y] = meshgrid(x, y) z = [-1 2 3; -5 -1 3; -2 4 8; 1 3 7; 4 7 10] subplot(2, 1, 1);...

5 days ago | 0

| accepted

Answered

How to recognize negative numbers with OCR?

Can't you simply add a - to the CharacterSet? Then if the first character is a -, it's a negative number. This works fine: gr...

How to recognize negative numbers with OCR?

Can't you simply add a - to the CharacterSet? Then if the first character is a -, it's a negative number. This works fine: gr...

5 days ago | 2

| accepted

Answered

Add a Title for Each Group of Subplots in a Figure Window

I believe you can use text(). I think it will place text on the figure if you tell it to, instead of the current axes. Try it ...

Add a Title for Each Group of Subplots in a Figure Window

I believe you can use text(). I think it will place text on the figure if you tell it to, instead of the current axes. Try it ...

5 days ago | 1

Answered

Monte Carlo noise simulation

You can use rand() to get a 1000 row matrix with 2 columns. Then use mean() and std() on each column or row. I'm attaching som...

Monte Carlo noise simulation

You can use rand() to get a 1000 row matrix with 2 columns. Then use mean() and std() on each column or row. I'm attaching som...

5 days ago | 1

Answered

Logical with complex numbers in a vector

Perhaps this: complexVector =[ 0.0000 + 0.1000i 1.7321 + 0.0010i 3.0000 + 0.0000i] % Define a tolerance: toleranc...

Logical with complex numbers in a vector

Perhaps this: complexVector =[ 0.0000 + 0.1000i 1.7321 + 0.0010i 3.0000 + 0.0000i] % Define a tolerance: toleranc...

6 days ago | 1

Answered

Error in splitapply command

This seems to work fine: B = 1 + 9 * rand(1, 100000); edges = 1 : 0.5 : 10 [counts, edges, bin] = histcounts(B, edges); % bi...

Error in splitapply command

This seems to work fine: B = 1 + 9 * rand(1, 100000); edges = 1 : 0.5 : 10 [counts, edges, bin] = histcounts(B, edges); % bi...

6 days ago | 1

Answered

Deep learning or Machine learning for the image processing is better option?

It depends on the images. Like, how easy it is to segment with traditional methods versus how ill-defined or variable the objec...

Deep learning or Machine learning for the image processing is better option?

It depends on the images. Like, how easy it is to segment with traditional methods versus how ill-defined or variable the objec...

6 days ago | 1

| accepted

Answered

How to get mode values of RGB to represent one image

Explain exactly what "extract RGB from those images" means to you. Because to get the individual color channels (R, G, and B) f...

How to get mode values of RGB to represent one image

Explain exactly what "extract RGB from those images" means to you. Because to get the individual color channels (R, G, and B) f...

6 days ago | 0

| accepted

Answered

Find distance between one point and a subset of other points.

For example, with 2-D array X, and 4 points: n = 4; % Whatever X = rand(n, 2); % Find distance between point 1 and all other ...

Find distance between one point and a subset of other points.

For example, with 2-D array X, and 4 points: n = 4; % Whatever X = rand(n, 2); % Find distance between point 1 and all other ...

6 days ago | 0

| accepted

Answered

How can I get randperm to return a permutation of a vector that has no entries at their original positions?

Just keep looping until there are no matches, like this: n = 5; originalVector = 1 : n; maxIterations = 10000; loopCounter =...

How can I get randperm to return a permutation of a vector that has no entries at their original positions?

Just keep looping until there are no matches, like this: n = 5; originalVector = 1 : n; maxIterations = 10000; loopCounter =...

6 days ago | 0

Answered

How can I improve segmentation of these images?

Did you try the Color Thresholder on the Apps tab of the tool ribbon? Set it up for hsv color space and tell it to find green b...

How can I improve segmentation of these images?

Did you try the Color Thresholder on the Apps tab of the tool ribbon? Set it up for hsv color space and tell it to find green b...

6 days ago | 0

| accepted

Answered

is their any way to calculate automatically this parameter from the image ?

Of course it's possible. Try this. Adapt as needed: % Demo by Image Analyst, February, 2021. clc; % Clear the command win...

is their any way to calculate automatically this parameter from the image ?

Of course it's possible. Try this. Adapt as needed: % Demo by Image Analyst, February, 2021. clc; % Clear the command win...

6 days ago | 1

| accepted

Answered

How do add one picture onto another picture in MATLAB?

subplot is one way subplot(2, 2, 1); imshow(image1); subplot(2, 2, 2); imshow(image2); subplot(2, 2, 3); imshow(image3); ...

How do add one picture onto another picture in MATLAB?

subplot is one way subplot(2, 2, 1); imshow(image1); subplot(2, 2, 2); imshow(image2); subplot(2, 2, 3); imshow(image3); ...

6 days ago | 0

Answered

Best practise for quickly changing parameters of a function?

Try this: functionValues = [0.38, 800, 32; 0.5, 700, 64; 0.4, 750, 16] % Whatever values you want % Loop through all...

Best practise for quickly changing parameters of a function?

Try this: functionValues = [0.38, 800, 32; 0.5, 700, 64; 0.4, 750, 16] % Whatever values you want % Loop through all...

6 days ago | 0

| accepted

Answered

Matlab programmer for writing a code

Absolutely there is. Mathworks would be delighted to write your code for you. Visit this link to get started: https://www.mat...

Matlab programmer for writing a code

Absolutely there is. Mathworks would be delighted to write your code for you. Visit this link to get started: https://www.mat...

7 days ago | 0

Answered

Radious of curvature calculation from dicreate data set ?

Fit the data to an exponential decay. That should give you better parameters to use than the radius of curvature. I think this...

Radious of curvature calculation from dicreate data set ?

Fit the data to an exponential decay. That should give you better parameters to use than the radius of curvature. I think this...

8 days ago | 1

Answered

How to find total number of pixels in a colour image? How to find the resolution of an 2D image?

[rows, columns, numColorChannels] = size(rgbImage); numberOfPixels = rows * columns; Digital resolution is number of rows and ...

How to find total number of pixels in a colour image? How to find the resolution of an 2D image?

[rows, columns, numColorChannels] = size(rgbImage); numberOfPixels = rows * columns; Digital resolution is number of rows and ...

8 days ago | 1

| accepted

Answered

How to find the distance between two points on an image using edge detection

If the distance is wrong, then the spatial calibration factor of 0.02645 cm per pixel is not correct. And obviously the spatial...

How to find the distance between two points on an image using edge detection

If the distance is wrong, then the spatial calibration factor of 0.02645 cm per pixel is not correct. And obviously the spatial...

11 days ago | 2

| accepted

Answered

Getting unique information from .CSV, group and average

I didn't look at the data, but you might want to look at splitapply() and findgroups().

Getting unique information from .CSV, group and average

I didn't look at the data, but you might want to look at splitapply() and findgroups().

11 days ago | 1

Answered

How do you perform moving average with given data?

Try readmatrix() data = readmatrix(filename); data(isnan(data)) = [];

How do you perform moving average with given data?

Try readmatrix() data = readmatrix(filename); data(isnan(data)) = [];

11 days ago | 1

| accepted