首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PsychToolBox GetImage不使用给定的rect维数保存

PsychToolBox GetImage不使用给定的rect维数保存
EN

Stack Overflow用户
提问于 2022-02-18 10:00:32
回答 1查看 15关注 0票数 0

我试图从我的PTB实验中节省一部分屏幕,但是屏幕(“GetImage”,.)功能不能正常工作。这是我的代码:

代码语言:javascript
复制
    screenNumber = 0;

    % Open screen with grey background
    [w, rect] = Screen('OpenWindow', screenNumber,...
        background,[], [], [],[],6);

    [xCenter, yCenter] = RectCenter(rect);
    sideLength = randi([100 175], 1);
    baseRect = [0, 0, sideLength, sideLength];

    % Center the frame
    centeredRect = CenterRectOnPoint(baseRect, xCenter, yCenter);

    %dot position 
    dots.x = randi([ round(xCenter - (sideLength/2))+15  round(xCenter + (sideLength/2))-15], 1, numeral);
    dots.y = randi([round(yCenter - (sideLength/2))+15 round(yCenter + (sideLength/2))-15], 1, numeral);
   
   %skipping code to move dots.x into dot_info.position for brevity

    Screen('DrawDots',w, dot_info.position, dot_info.size,...
                        dot_info.colour, [], 2); %dots are drawn to center of screen
                    
    Screen('Flip', w);
                                         
                    
    % Save dot cue
    %im = Screen('GetImage', w);
    im = Screen('GetImage', w, centeredRect);

    imwrite(im, filename);

问题是,应该有一个小的正方形图像,以centeredRect矩形为中心,其中包含我绘制的点。然而,我得到的只是一个正确大小的矩形没有点。如果我保存而不传递centeredRect参数(注释行),我将得到整个屏幕的保存图片,显示中间的点--因此我知道正在绘制这些点。GetImage调用和它对rect的使用一定有问题,因为它没有从屏幕的中心点保存,所以我只是得到背景信息。当我在显示器上运行这个程序时,它工作得很好,但在我的笔记本电脑上却没有。不幸的是,我现在无法使用我的显示器,所以我需要让这个在我的笔记本上工作。我已经检查了一个屏幕()呼叫,只有一个屏幕:屏幕0-我的笔记本电脑屏幕。

任何帮助都非常感谢。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-02-18 10:33:24

解决了:我不知道为什么这样做,但我不得不将centeredRect中的元素乘以2,希望这能帮助到其他人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71171555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档