鱼眼拼接之SIFT特征点检测之得到候选特征点

这篇不要看  是用来我以后自己观看回忆的  因为这个程序后来没办法将特征点显示出来  所以是有问题的  你们别看这篇  可以看下下篇鱼眼拼接之SIFT提取特征点



原理还是来自于这位大神http://blog.csdn.net/v_JULY_v/article/details/6245939 昨天得到了DOG高斯差分空间  共四层塔 每层塔有四幅图 每层图的大小是上一层的一半 今天继续通过这位大神所说 每次比较26个极值  得到候选特征点 只是这位大神所说的我没太理解 理解得有歧义   检测特征点时 比如我第一步得到的四层DOG金字塔中第一层四幅图是D11,D12,D13,D14,第二层分别是D21,D22,D23,D24,那么D12通过和自身和D11和D13每26个像素比较,得到了D12的关键点,同理D13也与自身和前后两个比较得到D13的关键点,这位大神的意思是还用D14与自身与D13还与第二层的D21比较得到D14的关键点?可是第一层和第二层图像的大小不一样 第二层图像是第一层的一半 那 D14和D21怎么比呢?这里我没怎么懂他的意思  所以就暂时按我自己想的来编  每一层就只得到两幅图的关键点(特征点),比如第一层 就可得到D12和D13的,我用一个新的矩阵E来装,特征点显示白色  故共八幅图E11,E12;E21,E22;E31,E32;E41,E42


接着昨天的程序继续写:(比较极值还是很简单的 就是循环 )

E11=zeros(m2,n2);
for i=3:m2-2
    for j=3:n2-2
        if(D12(i,j)>D12(i-1,j-1) && D12(i,j)>D12(i,j-1) && D12(i,j)>D12(i+1,j-1) && D12(i,j)>D12(i-1,j) && D12(i,j)>D12(i+1,j) && D12(i,j)>D12(i-1,j+1) && D12(i,j)>D12(i,j+1) && D12(i,j)>D12(i+1,j+1))
            if(D12(i,j)>D11(i,j) && D12(i,j)>D11(i-1,j-1) && D12(i,j)>D11(i,j-1) && D12(i,j)>D11(i+1,j-1) && D12(i,j)>D11(i-1,j) && D12(i,j)>D11(i+1,j) && D12(i,j)>D11(i-1,j+1) && D12(i,j)>D11(i,j+1) && D12(i,j)>D11(i+1,j+1))
                if(D12(i,j)>D13(i,j) && D12(i,j)>D13(i-1,j-1) && D12(i,j)>D13(i,j-1) && D12(i,j)>D13(i+1,j-1) && D12(i,j)>D13(i-1,j) && D12(i,j)>D13(i+1,j) && D12(i,j)>D13(i-1,j+1) && D12(i,j)>D13(i,j+1) && D12(i,j)>D13(i+1,j+1))
                    E11(i,j)=1;
                end
            end
        elseif(D12(i,j)<D12(i-1,j-1) && D12(i,j)<D12(i,j-1) && D12(i,j)<D12(i+1,j-1) && D12(i,j)<D12(i-1,j) && D12(i,j)<D12(i+1,j) && D12(i,j)<D12(i-1,j+1) && D12(i,j)<D12(i,j+1) && D12(i,j)<D12(i+1,j+1))
            if(D12(i,j)<D11(i,j) && D12(i,j)<D11(i-1,j-1) && D12(i,j)<D11(i,j-1) && D12(i,j)<D11(i+1,j-1) && D12(i,j)<D11(i-1,j) && D12(i,j)<D11(i+1,j) && D12(i,j)<D11(i-1,j+1) && D12(i,j)<D11(i,j+1) && D12(i,j)<D11(i+1,j+1))
                if(D12(i,j)<D13(i,j) && D12(i,j)<D13(i-1,j-1) && D12(i,j)<D13(i,j-1) && D12(i,j)<D13(i+1,j-1) && D12(i,j)<D13(i-1,j) && D12(i,j)<D13(i+1,j) && D12(i,j)<D13(i-1,j+1) && D12(i,j)<D13(i,j+1) && D12(i,j)<D13(i+1,j+1))
                    E11(i,j)=1;
                end
            end
        end
    end
end
E12=zeros(m2,n2);
for i=3:m2-2
    for j=3:n2-2
        if(D13(i,j)>D13(i-1,j-1) && D13(i,j)>D13(i,j-1) && D13(i,j)>D13(i+1,j-1) && D13(i,j)>D13(i-1,j) && D13(i,j)>D13(i+1,j) && D13(i,j)>D13(i-1,j+1) && D13(i,j)>D12(i,j+1) && D13(i,j)>D13(i+1,j+1))
            if(D13(i,j)>D12(i,j) && D13(i,j)>D12(i-1,j-1) && D13(i,j)>D12(i,j-1) && D13(i,j)>D12(i+1,j-1) && D13(i,j)>D12(i-1,j) && D13(i,j)>D12(i+1,j) && D13(i,j)>D12(i-1,j+1) && D13(i,j)>D12(i,j+1) && D13(i,j)>D12(i+1,j+1))
                if(D13(i,j)>D14(i,j) && D13(i,j)>D14(i-1,j-1) && D13(i,j)>D14(i,j-1) && D13(i,j)>D14(i+1,j-1) && D13(i,j)>D14(i-1,j) && D13(i,j)>D14(i+1,j) && D13(i,j)>D14(i-1,j+1) && D13(i,j)>D14(i,j+1) && D13(i,j)>D14(i+1,j+1))
                    E12(i,j)=1;
                end
            end
        elseif(D13(i,j)<D13(i-1,j-1) && D13(i,j)<D13(i,j-1) && D13(i,j)<D13(i+1,j-1) && D13(i,j)<D13(i-1,j) && D13(i,j)<D13(i+1,j) && D13(i,j)<D13(i-1,j+1) && D13(i,j)<D12(i,j+1) && D13(i,j)<D13(i+1,j+1))
            if(D13(i,j)<D12(i,j) && D13(i,j)<D12(i-1,j-1) && D13(i,j)<D12(i,j-1) && D13(i,j)<D12(i+1,j-1) && D13(i,j)<D12(i-1,j) && D13(i,j)<D12(i+1,j) && D13(i,j)<D12(i-1,j+1) && D13(i,j)<D12(i,j+1) && D13(i,j)<D12(i+1,j+1))
                if(D13(i,j)<D14(i,j) && D13(i,j)<D14(i-1,j-1) && D13(i,j)<D14(i,j-1) && D13(i,j)<D14(i+1,j-1) && D13(i,j)<D14(i-1,j) && D13(i,j)<D14(i+1,j) && D13(i,j)<D14(i-1,j+1) && D13(i,j)<D14(i,j+1) && D13(i,j)<D14(i+1,j+1))
                    E12(i,j)=1;
                end
            end
        end
    end
end
E21=zeros(m3,n3);
for i=3:m3-2
    for j=3:n3-2
        if(D22(i,j)>D22(i-1,j-1) && D22(i,j)>D22(i,j-1) && D22(i,j)>D22(i+1,j-1) && D22(i,j)>D22(i-1,j) && D22(i,j)>D22(i+1,j) && D22(i,j)>D22(i-1,j+1) && D22(i,j)>D22(i,j+1) && D22(i,j)>D22(i+1,j+1))
            if(D22(i,j)>D21(i,j) && D22(i,j)>D21(i-1,j-1) && D22(i,j)>D21(i,j-1) && D22(i,j)>D21(i+1,j-1) && D22(i,j)>D21(i-1,j) && D22(i,j)>D21(i+1,j) && D22(i,j)>D21(i-1,j+1) && D22(i,j)>D21(i,j+1) && D22(i,j)>D21(i+1,j+1))
                if(D22(i,j)>D23(i,j) && D22(i,j)>D23(i-1,j-1) && D22(i,j)>D23(i,j-1) && D22(i,j)>D23(i+1,j-1) && D22(i,j)>D23(i-1,j) && D22(i,j)>D23(i+1,j) && D22(i,j)>D23(i-1,j+1) && D22(i,j)>D23(i,j+1) && D22(i,j)>D23(i+1,j+1))
                    E21(i,j)=1;
                end
            end
        elseif(D22(i,j)<D22(i-1,j-1) && D22(i,j)<D22(i,j-1) && D22(i,j)<D22(i+1,j-1) && D22(i,j)<D22(i-1,j) && D22(i,j)<D22(i+1,j) && D22(i,j)<D22(i-1,j+1) && D22(i,j)<D22(i,j+1) && D22(i,j)<D22(i+1,j+1))
            if(D22(i,j)<D21(i,j) && D22(i,j)<D21(i-1,j-1) && D22(i,j)<D21(i,j-1) && D22(i,j)<D21(i+1,j-1) && D22(i,j)<D21(i-1,j) && D22(i,j)<D21(i+1,j) && D22(i,j)<D21(i-1,j+1) && D22(i,j)<D21(i,j+1) && D22(i,j)<D21(i+1,j+1))
                if(D22(i,j)<D23(i,j) && D22(i,j)<D23(i-1,j-1) && D22(i,j)<D23(i,j-1) && D22(i,j)<D23(i+1,j-1) && D22(i,j)<D23(i-1,j) && D22(i,j)<D23(i+1,j) && D22(i,j)<D23(i-1,j+1) && D22(i,j)<D23(i,j+1) && D22(i,j)<D23(i+1,j+1))
                    E21(i,j)=1;
                end
            end
        end
    end
end
E22=zeros(m3,n3);
for i=3:m3-2
    for j=3:n3-2
        if(D23(i,j)>D23(i-1,j-1) && D23(i,j)>D23(i,j-1) && D23(i,j)>D23(i+1,j-1) && D23(i,j)>D23(i-1,j) && D23(i,j)>D23(i+1,j) && D23(i,j)>D23(i-1,j+1) && D23(i,j)>D23(i,j+1) && D23(i,j)>D23(i+1,j+1))
            if(D23(i,j)>D22(i,j) && D23(i,j)>D22(i-1,j-1) && D23(i,j)>D22(i,j-1) && D23(i,j)>D22(i+1,j-1) && D23(i,j)>D22(i-1,j) && D23(i,j)>D22(i+1,j) && D23(i,j)>D22(i-1,j+1) && D23(i,j)>D22(i,j+1) && D23(i,j)>D22(i+1,j+1))
                if(D23(i,j)>D24(i,j) && D23(i,j)>D24(i-1,j-1) && D23(i,j)>D24(i,j-1) && D23(i,j)>D24(i+1,j-1) && D23(i,j)>D24(i-1,j) && D23(i,j)>D24(i+1,j) && D23(i,j)>D24(i-1,j+1) && D23(i,j)>D24(i,j+1) && D23(i,j)>D24(i+1,j+1))
                    E22(i,j)=1;
                end
            end
        elseif(D23(i,j)<D23(i-1,j-1) && D23(i,j)<D23(i,j-1) && D23(i,j)<D23(i+1,j-1) && D23(i,j)<D23(i-1,j) && D23(i,j)<D23(i+1,j) && D23(i,j)<D23(i-1,j+1) && D23(i,j)<D23(i,j+1) && D23(i,j)<D23(i+1,j+1))
            if(D23(i,j)<D22(i,j) && D23(i,j)<D22(i-1,j-1) && D23(i,j)<D22(i,j-1) && D23(i,j)<D22(i+1,j-1) && D23(i,j)<D22(i-1,j) && D23(i,j)<D22(i+1,j) && D23(i,j)<D22(i-1,j+1) && D23(i,j)<D22(i,j+1) && D23(i,j)<D22(i+1,j+1))
                if(D23(i,j)<D24(i,j) && D23(i,j)<D24(i-1,j-1) && D23(i,j)<D24(i,j-1) && D23(i,j)<D24(i+1,j-1) && D23(i,j)<D24(i-1,j) && D23(i,j)<D24(i+1,j) && D23(i,j)<D24(i-1,j+1) && D23(i,j)<D24(i,j+1) && D23(i,j)<D24(i+1,j+1))
                    E22(i,j)=1;
                end
            end
        end
    end
end
E31=zeros(m4,n4);
for i=3:m4-2
    for j=3:n4-2
        if(D32(i,j)>D32(i-1,j-1) && D32(i,j)>D32(i,j-1) && D32(i,j)>D32(i+1,j-1) && D32(i,j)>D32(i-1,j) && D32(i,j)>D32(i+1,j) && D32(i,j)>D32(i-1,j+1) && D32(i,j)>D32(i,j+1) && D32(i,j)>D32(i+1,j+1))
            if(D32(i,j)>D31(i,j) && D32(i,j)>D31(i-1,j-1) && D32(i,j)>D31(i,j-1) && D32(i,j)>D31(i+1,j-1) && D32(i,j)>D31(i-1,j) && D32(i,j)>D31(i+1,j) && D32(i,j)>D31(i-1,j+1) && D32(i,j)>D31(i,j+1) && D32(i,j)>D31(i+1,j+1))
                if(D32(i,j)>D33(i,j) && D32(i,j)>D33(i-1,j-1) && D32(i,j)>D33(i,j-1) && D32(i,j)>D33(i+1,j-1) && D32(i,j)>D33(i-1,j) && D32(i,j)>D33(i+1,j) && D32(i,j)>D33(i-1,j+1) && D32(i,j)>D33(i,j+1) && D32(i,j)>D33(i+1,j+1))
                    E31(i,j)=1;
                end
            end
        elseif(D32(i,j)<D32(i-1,j-1) && D32(i,j)<D32(i,j-1) && D32(i,j)<D32(i+1,j-1) && D32(i,j)<D32(i-1,j) && D32(i,j)<D32(i+1,j) && D32(i,j)<D32(i-1,j+1) && D32(i,j)<D32(i,j+1) && D32(i,j)<D32(i+1,j+1))
            if(D32(i,j)<D31(i,j) && D32(i,j)<D31(i-1,j-1) && D32(i,j)<D31(i,j-1) && D32(i,j)<D31(i+1,j-1) && D32(i,j)<D31(i-1,j) && D32(i,j)<D31(i+1,j) && D32(i,j)<D31(i-1,j+1) && D32(i,j)<D31(i,j+1) && D32(i,j)<D31(i+1,j+1))
                if(D32(i,j)<D33(i,j) && D32(i,j)<D33(i-1,j-1) && D32(i,j)<D33(i,j-1) && D32(i,j)<D33(i+1,j-1) && D32(i,j)<D33(i-1,j) && D32(i,j)<D33(i+1,j) && D32(i,j)<D33(i-1,j+1) && D32(i,j)<D33(i,j+1) && D32(i,j)<D33(i+1,j+1))
                    E31(i,j)=1;
                end
            end
        end
    end
end
E32=zeros(m4,n4);
for i=3:m4-2
    for j=3:n4-2
        if(D33(i,j)>D33(i-1,j-1) && D33(i,j)>D33(i,j-1) && D33(i,j)>D33(i+1,j-1) && D33(i,j)>D33(i-1,j) && D33(i,j)>D33(i+1,j) && D33(i,j)>D33(i-1,j+1) && D33(i,j)>D33(i,j+1) && D33(i,j)>D33(i+1,j+1))
            if(D33(i,j)>D32(i,j) && D33(i,j)>D32(i-1,j-1) && D33(i,j)>D32(i,j-1) && D33(i,j)>D32(i+1,j-1) && D33(i,j)>D32(i-1,j) && D33(i,j)>D32(i+1,j) && D33(i,j)>D32(i-1,j+1) && D33(i,j)>D32(i,j+1) && D33(i,j)>D32(i+1,j+1))
                if(D33(i,j)>D34(i,j) && D33(i,j)>D34(i-1,j-1) && D33(i,j)>D34(i,j-1) && D33(i,j)>D34(i+1,j-1) && D33(i,j)>D34(i-1,j) && D33(i,j)>D34(i+1,j) && D33(i,j)>D34(i-1,j+1) && D33(i,j)>D34(i,j+1) && D33(i,j)>D34(i+1,j+1))
                    E32(i,j)=1;
                end
            end
        elseif(D33(i,j)<D33(i-1,j-1) && D33(i,j)<D33(i,j-1) && D33(i,j)<D33(i+1,j-1) && D33(i,j)<D33(i-1,j) && D33(i,j)<D33(i+1,j) && D33(i,j)<D33(i-1,j+1) && D33(i,j)<D33(i,j+1) && D33(i,j)<D33(i+1,j+1))
            if(D33(i,j)<D32(i,j) && D33(i,j)<D32(i-1,j-1) && D33(i,j)<D32(i,j-1) && D33(i,j)<D32(i+1,j-1) && D33(i,j)<D32(i-1,j) && D33(i,j)<D32(i+1,j) && D33(i,j)<D32(i-1,j+1) && D33(i,j)<D32(i,j+1) && D33(i,j)<D32(i+1,j+1))
                if(D33(i,j)<D34(i,j) && D33(i,j)<D34(i-1,j-1) && D33(i,j)<D34(i,j-1) && D33(i,j)<D34(i+1,j-1) && D33(i,j)<D34(i-1,j) && D33(i,j)<D34(i+1,j) && D33(i,j)<D34(i-1,j+1) && D33(i,j)<D34(i,j+1) && D33(i,j)<D34(i+1,j+1))
                    E32(i,j)=1;
                end
            end
        end
    end
end

E41=zeros(round(m4/2),round(n4/2));
for i=3:round(m4/2)-2
    for j=3:round(n4/2)-2
        if(D42(i,j)>D42(i-1,j-1) && D42(i,j)>D42(i,j-1) && D42(i,j)>D42(i+1,j-1) && D42(i,j)>D42(i-1,j) && D42(i,j)>D42(i+1,j) && D42(i,j)>D42(i-1,j+1) && D42(i,j)>D42(i,j+1) && D42(i,j)>D42(i+1,j+1))
            if(D42(i,j)>D41(i,j) && D42(i,j)>D41(i-1,j-1) && D42(i,j)>D41(i,j-1) && D42(i,j)>D41(i+1,j-1) && D42(i,j)>D41(i-1,j) && D42(i,j)>D41(i+1,j) && D42(i,j)>D41(i-1,j+1) && D42(i,j)>D41(i,j+1) && D42(i,j)>D41(i+1,j+1))
                if(D42(i,j)>D43(i,j) && D42(i,j)>D43(i-1,j-1) && D42(i,j)>D43(i,j-1) && D42(i,j)>D43(i+1,j-1) && D42(i,j)>D43(i-1,j) && D42(i,j)>D43(i+1,j) && D42(i,j)>D43(i-1,j+1) && D42(i,j)>D43(i,j+1) && D42(i,j)>D43(i+1,j+1))
                    E41(i,j)=1;
                end
            end
        elseif(D42(i,j)<D42(i-1,j-1) && D42(i,j)<D42(i,j-1) && D42(i,j)<D42(i+1,j-1) && D42(i,j)<D42(i-1,j) && D42(i,j)<D42(i+1,j) && D42(i,j)<D42(i-1,j+1) && D42(i,j)<D42(i,j+1) && D42(i,j)<D42(i+1,j+1))
            if(D42(i,j)<D41(i,j) && D42(i,j)<D41(i-1,j-1) && D42(i,j)<D41(i,j-1) && D42(i,j)<D41(i+1,j-1) && D42(i,j)<D41(i-1,j) && D42(i,j)<D41(i+1,j) && D42(i,j)<D41(i-1,j+1) && D42(i,j)<D41(i,j+1) && D42(i,j)<D41(i+1,j+1))
                if(D42(i,j)<D43(i,j) && D42(i,j)<D43(i-1,j-1) && D42(i,j)<D43(i,j-1) && D42(i,j)<D43(i+1,j-1) && D42(i,j)<D43(i-1,j) && D42(i,j)<D43(i+1,j) && D42(i,j)<D43(i-1,j+1) && D42(i,j)<D43(i,j+1) && D42(i,j)<D43(i+1,j+1))
                    E41(i,j)=1;
                end
            end
        end
    end
end
E42=zeros(round(m4/2),round(n4/2));
for i=3:round(m4/2)-2
    for j=3:round(n4/2)-2
        if(D43(i,j)>D43(i-1,j-1) && D43(i,j)>D43(i,j-1) && D43(i,j)>D43(i+1,j-1) && D43(i,j)>D43(i-1,j) && D43(i,j)>D43(i+1,j) && D43(i,j)>D43(i-1,j+1) && D43(i,j)>D43(i,j+1) && D43(i,j)>D43(i+1,j+1))
            if(D43(i,j)>D42(i,j) && D43(i,j)>D42(i-1,j-1) && D43(i,j)>D42(i,j-1) && D43(i,j)>D42(i+1,j-1) && D43(i,j)>D42(i-1,j) && D43(i,j)>D42(i+1,j) && D43(i,j)>D42(i-1,j+1) && D43(i,j)>D42(i,j+1) && D43(i,j)>D42(i+1,j+1))
                if(D43(i,j)>D44(i,j) && D43(i,j)>D44(i-1,j-1) && D43(i,j)>D44(i,j-1) && D43(i,j)>D44(i+1,j-1) && D43(i,j)>D44(i-1,j) && D43(i,j)>D44(i+1,j) && D43(i,j)>D44(i-1,j+1) && D43(i,j)>D44(i,j+1) && D43(i,j)>D44(i+1,j+1))
                    E42(i,j)=1;
                end
            end
        elseif(D43(i,j)<D43(i-1,j-1) && D43(i,j)<D43(i,j-1) && D43(i,j)<D43(i+1,j-1) && D43(i,j)<D43(i-1,j) && D43(i,j)<D43(i+1,j) && D43(i,j)<D43(i-1,j+1) && D43(i,j)<D43(i,j+1) && D43(i,j)<D43(i+1,j+1))
            if(D43(i,j)<D42(i,j) && D43(i,j)<D42(i-1,j-1) && D43(i,j)<D42(i,j-1) && D43(i,j)<D42(i+1,j-1) && D43(i,j)<D42(i-1,j) && D43(i,j)<D42(i+1,j) && D43(i,j)<D42(i-1,j+1) && D43(i,j)<D42(i,j+1) && D43(i,j)<D42(i+1,j+1))
                if(D43(i,j)<D44(i,j) && D43(i,j)<D44(i-1,j-1) && D43(i,j)<D44(i,j-1) && D43(i,j)<D44(i+1,j-1) && D43(i,j)<D44(i-1,j) && D43(i,j)<D44(i+1,j) && D43(i,j)<D44(i-1,j+1) && D43(i,j)<D44(i,j+1) && D43(i,j)<D44(i+1,j+1))
                    E42(i,j)=1;
                end
            end
        end
    end
end



第一列分别是第一层塔得到的两幅图的特征点  第二列是第二层塔。。。。。。以此类推

即 第一幅是E11 第二幅是E21。。。第五幅图是E12  第六幅是E22 第七幅是E32.。。。。

我也不知道检测特征点比较极值时是不是这个意思 论文里跟本没讲这个细节  博主讲的我也理解得有歧义。。。再想想  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
全景图像拼接是将多幅有重叠区域的图像拼接成全视角360o的平面图像。全景图像拼接技术是一种基于图像绘制技术、图像处理及计算机几何学等多领域的综合技术,由于对硬件要求低,真实感较好等优点,是目前虚拟现实、三维重建等的重点研究方向。鱼眼图像是通过在相机上安装超广视角的鱼眼镜头所拍摄,具有视域广,一次成像为非线性图像的特点,比普通视觉图像拼接所需的原图像少,效率高,但拼接难度大。 本文介绍了鱼眼图像拼接技术的研究背景、应用领域。重点研究了图像拼接技术中的鱼眼桶形畸变校正、投影变换理论、SIFT匹配以及图像融合等技术,对比分析了它们的理论基础、实现方式、运算性能以及还有的不足。 鱼眼图像形变严重,首先需要校正为符合人类视觉的线性图像。针对传统的经纬度校正法还存在一定拱形失真的问题,本文提出了渐进方程校正法,此方法不考虑用镜头参数来构建复杂的投影模型,完成鱼眼图像的校正,单帧图像视觉效果较好且更利于拼接;针对多帧图像的拼接问题,考虑到鱼眼图像的特点,只截取每帧图像的部分区域进行定位匹配,在此区域进行SIFT特征的全景图像拼接,运算量比全局SIFT算法大幅减少,耗时相应降低;为生成实际景物连贯的全景图像,本文采用柱面投影变换,为了解决投影变换后图像产生阶梯现象,文中对比了几种常用算法,并采用双线性插值算法有效解决该问题;在图像融合过程中,分析比较了几种经典算法,选择渐入渐出融合算法对待拼接的图像进行处理,使得拼接后图像重叠区域过渡平滑,基本实现无缝拼接,在图像处理的速度和效果达到一定的均衡。 最后,为了便于全景图像的理解和观察,本文还设计了全景柱形环绕浏览人机交互界面,实现了垂直180o,水平360o空间的动态环绕视觉观察。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元气少女缘结神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值