How can I generate Gabor patterns with specified contrasts and save them as pictures?

1 次查看(过去 30 天)
I need to create pictures with a specific Gabor pattern, with different levels of contrast - from 0% to 100%.
I know there is a "Gabor" function in Matlab, but I did not find a way to define the Gabor's contrast.
I know there is also a PsychToolbox function that creates a Gabor texture on the screen (Screen('DrawTexture', windowPtr, gaborid...), but I do not need to present the Gabors on screen, I need to save bitmap pictures, and I do not know how to capture pictures presented on a running PsychToolbox screen (so a function\code that captures the screen and saves it would be appreciated as well).
Thank you! Genie

回答(1 个)

Sreeram
Sreeram 2025-1-21
Hi Genie,
To create Gabor patterns with different contrast levels in MATLAB, you can use the "imadjust" function to modify the contrast of the generated image. Here is how this may be done:
g = gabor(20, 30);
gaborPattern = real(g.SpatialKernel);
% Example for 35% contrast
contrastLevel = 0.35;
adjustedPattern = imadjust(gaborPattern, [0, 1], [0.5 - contrastLevel/2, 0.5 + contrastLevel/2]);
imshow(adjustedPattern)
% Example for 100% contrast
contrastLevel = 1;
adjustedPattern = imadjust(gaborPattern, [0, 1], [0.5 - contrastLevel/2, 0.5 + contrastLevel/2]);
imshow(adjustedPattern)
The "imadjust" function adjusts the contrast by remapping the intensity values of an image. More information on the function is available in the following documentation:
The image may be saved using the "imwrite" function:
I hope this helps!

类别

Help CenterFile Exchange 中查找有关 Image display and manipulation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by