小编Tin*_*Tin的帖子

matlab:将矢量划分为固定大小的重叠块

我已经我想分成重叠的大小的子向量的向量cs中的转移sh.想象一下输入向量是:

v=[1 2 3 4 5 6 7 8 9 10 11 12 13]; % A=[1:13]
Run Code Online (Sandbox Code Playgroud)

给定chunksize4(cs=4)和2(sh=2)的移位,结果应如下所示:

[1 2 3 4]
[3 4 5 6]
[5 6 7 8]
[7 8 9 10]
[9 10 11 12]
Run Code Online (Sandbox Code Playgroud)

请注意,输入向量不一定能被整除chunksize,因此会丢弃一些子向量.有没有快速计算方法,而不需要使用例如for循环?在一篇相关文章中,我发现了如何做到这一点,但在考虑非重叠的子向量时.

matlab split vector range indices

8
推荐指数
2
解决办法
3491
查看次数

使用智能指针复制构造函数

我有一个班级,一个std::unique_ptr班级成员.我想知道,如何正确定义复制构造函数,因为我收到以下编译器错误消息:error C2248: std::unique_ptr<_Ty>::unique_ptr : cannot access private member declared in class 'std::unique_ptr<_Ty>.我的班级设计看起来像:

template <typename T>
class Foo{
    public:
        Foo(){};
        Foo( Bar<T> *, int );
        Foo( const Foo<T> & );
        ~Foo(){};

        void swap( Foo<T> & );
        Foo<T> operator = ( Foo<T> );

    private:
        std::unique_ptr<Bar> m_ptrBar;
        int m_Param1;

};

template < typename T >
Foo<T>::Foo( const Foo<T> & refFoo )
:m_ptrBar(refFoo.m_ptrBar), 
m_Param1(refFoo.m_Param1)
{
    // error here!
}

template < typename T >
void Foo<T>::swap( Foo<T> & refFoo ){ …
Run Code Online (Sandbox Code Playgroud)

c++ templates smart-pointers copy-constructor

6
推荐指数
1
解决办法
6207
查看次数

虚拟构造函数成语与智能指针

我有一个多态类的层次结构,比如一个Shape抽象基类及其派生类,例如Rectangle,Circle等等.遵循Virtual Constructor Idiom,我想知道为什么我们需要在派生类中返回虚拟构造函数的类型应该在使用智能指针时返回与其父类相同的类型?
例如,请参阅下面的代码,其中clone()create()成员函数需要返回smart_pointersShape类.但是,在使用时simple pointers,返回类型可以与派生类之一具有相同的类型.
有人可以解释为什么我们需要以引用的方式处理这些功能吗?

class Shape;

typedef std::unique_ptr<Shape> shape_ptr;

class Shape{

    public:

        //typedef std::unique_ptr<Shape> shape_ptr;

        Shape(){};
        virtual ~Shape(){};

        virtual void draw() const = 0;
        virtual float area() const = 0;

        virtual shape_ptr clone() const = 0;
        virtual shape_ptr create() const = 0;
        //virtual Shape*clone() const = 0;
        //virtual Shape*create() const = 0;
};

class Rectangle:public Shape{
    public:

        typedef std::unique_ptr<Rectangle> rectangle_SmartPtr; …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism virtual constructor smart-pointers

6
推荐指数
2
解决办法
1649
查看次数

从中轴骨架图

我有一个前景为白色的二进制图像.在其内侧轴骨架的分支点和端点之外,我想构建一个图形.理想情况下,具有以下结构:

  1. [节点]具有格式[ID XY],其中X,Y是分支点或端点的像素位置,ID是节点的ID - 整数.
  2. [edge]具有格式[ID N1 N2],其中N1和N1表示节点的ID.

通过使用[nodes]和[edges],我将拥有骨架到无向图表示的映射.

使用下面的代码,我可以计算分支和端点,但现在我需要正确连接它们:

skelImg   = bwmorph(im, 'thin', 'inf');
branchImg = bwmorph(skelImg, 'branchpoints');
endImg    = bwmorph(skelImg, 'endpoints');

[row, column] = find(endImg);
endPts        = [row column];
[row, column] = find(branchImg);
branchPts     = [row column];

figure; imshow(skelImg); hold on; plot(branchPts(:,2),branchPts(:,1),'r*'); hold on; plot(endPts(:,2),endPts(:,1),'*');
Run Code Online (Sandbox Code Playgroud)

输入图像(左侧),骨架(中间)以及相应的分支点和终点(右侧)的示例如下:

或者在以下网址中的完整分辨率:http://imgur.com/a/a3s4F/

matlab image-processing

6
推荐指数
1
解决办法
3627
查看次数

带参数化构造函数的抽象工厂

我最近听说过抽象工厂模式,目前在需要参数化构造函数时如何设计这种模式存在一些疑问.

更确切地说,根据我的理解,这种设计模式的主要好处之一是促进代码管理,因为无论何时向系统引入新类型,都需要调整一个工厂函数,其中调用对象构造函数.

我发现的大多数示例都只考虑空构造函数(比如默认构造函数).
但是,如果需要使用参数化构造函数会发生什么?这种设计模式是否仍然有效?
由于参数在派生类之间的类型和数量可能不同,是否需要考虑几个工厂函数?下面我举例说明我想要实现的目标.请注意,为了减少代码行,我只考虑了每个类的一个构造函数,它们既可以作为默认构造函数,也可以作为参数化构造函数.

class Shape {
public:
    Shape(){std::cout << "Calling Shape Constructor\n";};
    virtual ~Shape(){std::cout << "Calling Shape Desstructor\n";};
    virtual void draw() const = 0;
    virtual void doSomething1(int) const = 0;
    virtual void doSomething2(int, float) const = 0;
};

class Rectangle : public Shape {
public:
    Rectangle(int l = 0, int b = 0 ):l(l),b(b){ std::cout << "Calling Rectangle Constructor\n"; };
    ~Rectangle(){ std::cout << "Calling Rectangle Destructor\n\n"; };
    virtual void draw() const{ /* Draw Rectangle */ }; 
    virtual void …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism abstract-class design-patterns smart-pointers

5
推荐指数
1
解决办法
3980
查看次数

matlab:在圆形neighboorhoods内有效计算局部直方图

我想要在圆形邻域内计算局部直方图的图像.邻域的大小由a给出radius.虽然下面的代码完成了这项工作,但它的计算成本却很高.我运行探查器,我访问圆形社区内的像素的方式已经很昂贵了.

是否有任何基于矢量化的改进/优化?或者,例如,将邻域存储为列?我在这篇文章中发现了一个类似的问题,所提出的解决方案完全符合下面代码的精神,但是解决方案仍然不适合我的情况.任何想法都非常受欢迎:-)想象一下,目前图像是二进制的,但该方法也应理想地与灰度图像一起使用:-)

[rows,cols] = size(img);
hist_img      = zeros(rows, cols, 2);
[XX, YY]      = meshgrid(1:cols, 1:rows);
for rr=1:rows
        for cc=1:cols
            distance      = sqrt( (YY-rr).^2 + (XX-cc).^2  );
            mask_radii = (distance <= radius);
            bwresponses   = img(mask_radii);
            [nelems, ~]   = histc(double(bwresponses),0:255);
            % do some processing over the histogram
            ...
        end
end
Run Code Online (Sandbox Code Playgroud)

编辑1鉴于收到的反馈,我试图更新解决方案.但是,它还不正确

radius = sqrt(2.0);
disk   = diskfilter(radius);
fun    = @(x) histc( x(disk>0), min(x(:)):max(x(:)) ); 
output = im2col(im, size(disk), fun);

function disk = diskfilter(radius)
    height  = 2*ceil(radius)+1;
    width …
Run Code Online (Sandbox Code Playgroud)

optimization performance matlab image-processing histogram

5
推荐指数
1
解决办法
506
查看次数

在 Django Admin 中可视化上传的图像

尽管我找到了有关如何在 Django-Admin 中正确显示图像的有用帖子(#1#2#3),但到目前为止我还没有成功地遵循这些建议。正如您在下面看到的,上传的图像没有正确显示,并且显示 404 错误。

下图说明了上传的图像虽然已成功上传到服务器上但未显示的事实: 上传图片的链接失效

当我用鼠标单击断开的链接时,浏览器上显示以下错误: 网址错误

编辑给定对象时,我还想知道如何显示缩略图而不是图像的路径: 图片的网址 在下面,您可以找到我迄今为止一直在使用的配置:

设置.py

import os
PROJECT_ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..').replace('\\','/')
SITE_ROOT = PROJECT_ROOT

# Path to media files, e.g. images
MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)

网址.py

from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.conf import settings
from . import views

urlpatterns = patterns('',
    # some url configs here ... removed for simplification purposes ;-)
)

if settings.DEBUG is True:
    urlpatterns += patterns('', …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-admin media-url

5
推荐指数
1
解决办法
5135
查看次数