我已经我想分成重叠的大小的子向量的向量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)
给定chunksize
4(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
循环?在一篇相关文章中,我发现了如何做到这一点,但在考虑非重叠的子向量时.
我有一个班级,一个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) 我有一个多态类的层次结构,比如一个Shape
抽象基类及其派生类,例如Rectangle
,Circle
等等.遵循Virtual Constructor Idiom,我想知道为什么我们需要在派生类中返回虚拟构造函数的类型应该在使用智能指针时返回与其父类相同的类型?
例如,请参阅下面的代码,其中clone()
和create()
成员函数需要返回smart_pointers
到Shape
类.但是,在使用时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) 我有一个前景为白色的二进制图像.在其内侧轴骨架的分支点和端点之外,我想构建一个图形.理想情况下,具有以下结构:
通过使用[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/
我最近听说过抽象工厂模式,目前在需要参数化构造函数时如何设计这种模式存在一些疑问.
更确切地说,根据我的理解,这种设计模式的主要好处之一是促进代码管理,因为无论何时向系统引入新类型,都需要调整一个工厂函数,其中调用对象构造函数.
我发现的大多数示例都只考虑空构造函数(比如默认构造函数).
但是,如果需要使用参数化构造函数会发生什么?这种设计模式是否仍然有效?
由于参数在派生类之间的类型和数量可能不同,是否需要考虑几个工厂函数?下面我举例说明我想要实现的目标.请注意,为了减少代码行,我只考虑了每个类的一个构造函数,它们既可以作为默认构造函数,也可以作为参数化构造函数.
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
我想要在圆形邻域内计算局部直方图的图像.邻域的大小由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) 尽管我找到了有关如何在 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) c++ ×3
matlab ×3
polymorphism ×2
constructor ×1
django ×1
django-admin ×1
histogram ×1
indices ×1
media-url ×1
optimization ×1
performance ×1
python ×1
range ×1
split ×1
templates ×1
vector ×1
virtual ×1