How can I generate Gabor patterns with specified contrasts and save them as pictures?
6 views (last 30 days)
Show older comments
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 Comment
Answers (1)
Sreeram
on 21 Jan 2025 at 12:01
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!
0 Comments
See Also
Categories
Find more on Image display and manipulation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!