image pixel value multiplication with constant using customized multiplier function

3 views (last 30 days)
I loaded 4D image.tif (x,y,z over time/16bit gray scale) through Image J in Matlab.
  1. I'd like to change pixels using function and show reconstructed image.
For example, I have 512(x)*512(y)*5(z)*5(time) image and change to their each value of pixel using function. "Reconstructed pixel intensity(y)=Initial pixel intensity(x)*exp(0.5/t)" Then, it should show reconstructed image 512(x)*512(y)*5(z)*5(time).
Simple question but it's complicated for me.
What can I do for that?
You can find the example image the following link.
https://drive.google.com/file/d/1l7iEe8BZV3I5U2tqIoA2QtZEj_mbO5aH/view?usp=sharing
ImageJ
imp = ij.IJ.openImage('image path');
imp.show();
IJM.getDatasetAs('I');
[x y t]=size(I);
class(I);
newimage = zeros(size(I));
  2 Comments
Image Analyst
Image Analyst on 19 May 2019
I don't understand. You don't have 3-D RGB images but you have 5-D images? Are your 5 Z indexes planes/slices in a 3-D volumetric image, like from CT or MRI? I understand having 5 t, or time point, images, but don't understand you have 5 indexes/slices/planes. Please explain.
Jaehwi Bong
Jaehwi Bong on 20 May 2019
Edited: Jaehwi Bong on 21 May 2019
I'm sorry I didn't explain correctly.
This image is obtained from a confocal microsope. I have 3D volumetric image. The number of pixels (x,y) is 512*512. And I have 5 z planes with 5 time point.
I'd like to change every each pixel value(intensity) using a funtion, A= I(t)-I(b)/exp(0.6*t), where I(t) is initial intensity as a funtion of time point, I(b) is the last image as a role of background, and A is the new value of intensity.
newimage = immultiply(I,0.6);
IJM.show('J')
I could change the pixels intensity using 'immultiply' with constant 0.6.
I don't know what to do in the case of function.

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!