利用单反相机按一定的间隔拍多张照片,然后用ps软件堆栈在一起,可以模拟延时拍摄吗

利用单反相机按一定的间隔拍多张照片,然后用ps软件堆栈在一起,可以模拟延时拍摄吗,第1张

如果把这一大堆照片堆叠在一起,形成一张照片,可以得到类似慢门拍摄的效果。

如果把这一大堆照片组合到一起,形成一个动画,就是延时摄影的效果了。

做延时摄影,用美图秀秀的“闪图”功能很方便……唯一缺点是一次只能编辑50张照片……

具体方法如下:

1、针对不同的 *** 作系统和编译器,需要了解预留多少空间才能较好地保证程序安全。

2、在程序中设置堆栈预留空间的方法,可以通过在函数中添加 __attribute__((noinline, noclone)) 属性,然后使用 __builtin_alloca() 函数来预留空间。

3、另外,也可以在编译时使用一些工具来检测和分析程序的堆栈使用情况。

;已知 (A) = 02H, (SP) = 40H, (41H) = FFH, (42H) = FFH

;这是一个子程序,调用时PC由硬件自动入栈,所以调用后SP = 40H+2 = 42H,而42H处值=FFH

POP  DPH ;出栈,栈数据放到DPH和DPL,这时DPTR = FFFFH

POP  DPL      ;因为开始SP =42H,出栈后SP = 42H - 2 = 40H

MOV  DPTR,#3000H ;向寄存器DPTR写入数据3000H

RR   A ;A右移一次,A=02H=0000 0010 -->0000 0001=01H

MOV  B,A ;B = A = 01H

MOVC A,@A+DPTR ;将ROM地址 A+DPTR = 01H+3000H = 3001H 处的数据读到A中

PUSH ACC  ;将 读到的数据 推入栈,看数据区3001H处 = 10H

;入栈是先SP+1,再读入数据,所以(41H) = 10H,SP = 41H

MOV  A,B ;A = B = 01H

INC  A ;A = 01H+1 = 02H

MOVC A,@A+DPTR ;读取ROM 3002H地址单元的内容:80H

PUSH ACC  ;将 读到的数据 推入栈,这时(42H) = 80H,SP = 40H

RET  ;返回时,PC由硬件出栈,因为这时SP已经不是42H,而且程序一开始

;就执行POP导致PC入栈值读出来,然后经过MOV DPTR,#3000H语句就丢失掉了,程序可能回不到

;调用前的地方,而是跑到 读取到的数据 1080H这个地方了,所以执行完后PC = 1080H

;--数据地址区----------

ORG  3000H

DB   10H,80H,30H,50H,30H,50H

请你参考:

高手们喜欢这样写,看懂了就没有那么可怕了,其实就是一种保存数据的方法。

下面逐句分析,先说明一下吧:PUSH与POP必须成对出现,否则就乱了;另外谁跟谁是一对也得弄清。

DELAY: 

        MOV R2,#30H    //以下3行不解释了

        ACALL DELAY0

        RET

DELAY0: PUSH 02H   //把02H单元的数据入栈,就是把R2的数据存入堆栈。

                   //用的是第一组寄存器(m1m0=00)

                   //把堆栈看作盖楼,现在盖了一层

DELAY1: PUSH 02H    //还是把R2 的数据入栈,这是大楼的第二层了

DELAY2: PUSH 02H    //还是把R2 的数据入栈,这是大楼的第三层了

DELAY3: DJNZ R2, DELAY3    //在这一行循环,直到R2为0

        POP 02H    //第三层出栈,把栈内的数据d给02H单元,就是装入R2。

                   //第三层拆了,不存在了。

        DJNZ R2, DELAY2    //R2不为0,返回DELAY2,重新盖第三层。

                           //R2为0,往下执行,第三层不盖了,第三层不存在了。

        POP 02H    //第二层出栈,栈内数据d给R2,第二层拆了

        DJNZ R2, DELAY1    //R2不为0,返回DELAY1,重盖第二层。

                           //R2为0,往下执行,第二层不盖了,第二层不存在了。

        POP 02H    //第一层出栈,第一层拆了

        DJNZ R2, DELAY0    //R2不为0,返回DELAY0,重盖第一层。

                           //R2为0,往下执行,第一层不盖了,整个大楼消失了。

        RET

3看懂没有,好好看看,仔细想想,相信你能弄懂!!!!

以上就是关于利用单反相机按一定的间隔拍多张照片,然后用ps软件堆栈在一起,可以模拟延时拍摄吗全部的内容,包括:利用单反相机按一定的间隔拍多张照片,然后用ps软件堆栈在一起,可以模拟延时拍摄吗、如何设置堆栈预留空间才能保证程序安全、单片机8051堆栈问题程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9427003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存