- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我带着课本上的 PCNN 代码又回来了。
我在相关行的 pcn2d.cc 中收到“没有匹配的函数调用”错误
带有变量 F、L、U、T 和 Y。这是类文件、代码文件和编译器日志:
笠美.h
//
// rimage.h
//
//
// Jason M. Kinser
// 15 October 1995
// rimage.h
// an image of real elements
// 1 April 1996 - added histogram
// 15 April 1996 - addeed hgradientbox
// 27 June 1996 - a dded /= rimage
// 7 July 1996 - added / rimage, Smooth
//
#include "matrix.h"
#ifndef RIMAGE
#define RIMAGE
typedef unsigned short word;
typedef unsigned long dword;
class rimage : public matrix {
public:
rimage( void );
rimage( int, int );
rimage( rimage & );
rimage & operator=( const matrix & A );
rimage & operator=( const rimage & A );
rimage & operator/=( int );
// Math
rimage operator+( float );
rimage operator+( const rimage & );
rimage operator*( const rimage & ); // element
rimage operator*( float );
friend rimage operator+( float, const rimage & );
friend rimage operator*( float, const rimage & );
rimage Convolve( rimage & );
// Image conversions
void UpsideDown( void );
// Input / Output
void SaveTarga( char * );
} ;
#endif
pcnn2d.h
//
// pcnn2d.h
// A 2D Pulse-Coupled Neural Network
// Jason Kinser
// 15 April 1996
//
#include "rimage.h "
class PCNN {
int vert, horz;
rimage Quantized ( void );
public:
rimage F, L, U, T, Y, K;
float af, al, at, beta, vf, vl, vt;
PCNN( int, int); // The two dimensions
PCNN( const PCNN & ); // copy
~PCNN( void );
int KernVert( void) const;
int KernHorz( void) const;
void StdK( void );
int Iterate ( rimage & );
int FastIterate( rimage & ); // uses fast linking
void Clear( void );
void Save( char * );
void Load( char * );
};
pcnn2d.cc
//
// pcnn2d.cc
// The Pulse-Coupled Neural Network
//
// Jason Kinser
// 15 April 1996
#include <math.h>
#include <stdlib.h>
#include "pcnn2d.h"
PCNN::PCNN( int V, int H )
{
vert = V; horz = H;
F.New( V, H );
L.New( V, H );
U.New( V, H );
T.New( V, H );
Y.New( V, H );
K.New( 5, 5 );
af = 10.0; al = 1.0; at = 5.0;
beta = 0.1;
vf = 0.5; vl = 0.5; vt = 20.0;
StdK();
}
PCNN::PCNN( const PCNN & P )
{
vert = P.vert; horz = P.horz;
F.New( vert, horz );
L.New( vert, horz );
U.New( vert, horz );
T.New( vert, horz );
Y.New( vert, horz );
K.New( P.KernVert ( ), P.KernHorz( ) );
F = P.F; L = P.L; U = P.U;
T = P.T; Y = P.Y; K = P.K;
af = P.af; al = P.al; at = P.at;
beta = P.beta;
vf = P.vf; vl = P.vl; vt = P.vt;
}
PCNN::~PCNN( void )
{
F.Dispose(); L.Dispose(); U.Dispose();
T.Dispose(); Y.Dispose(); K.Dispose();
}
int PCNN::KernVert( void ) const
// returns the vertical dimension of the kernel
{ return K.Vert( ); }
int PCNN::KernHorz( void ) const
{ return K.Horz( ); }
void PCNN::StdK( void )
{ int i, j, kv, kh; float val;
kv = K.Vert(); kh = K.Horz();
for ( i=0; i<kv; i++ ) for ( j=0; j<kh; j++ )
{
val = hypot( i-kv/2, j-kh/2 );
if( val != 0.0 ) val = 1.0/val;
else val = 1.0;
K[i][j] = val;
}
}
rimage PCNN::Quantized ( void )
{
int i,j; rimage ans( vert, horz );
rimage work( vert, horz ), k( 3,3 );
k.Clear( 1.0 );
work = Y.Convolve( k ); //ERROR LINE 74
for ( i=0; i<work.Vert(); i++ ) for ( j=0; j<work.Horz(); j++ )
if( work[i][j] > 1.0 ) ans[i][j] = 1.0;
else ans [i][j] = 0.0;
return ans;
}
int PCNN::Iterate( rimage & A )
{
rimage work( F.Vert() , F.Horz() );
work = Y.Convolve( K ); //ERROR LINE 83
F = exp( -1.0/af ) * F + vf * work + A; //ERROR LINE 84
L = exp( -1.0/al ) * L + vl* work; //ERROR LINE 85
U = F * (1.0 + beta * L); //ERROR LINE 86
for( int i=0; i<vert; i++ ) for ( int j = 0; j<horz; j++ )
if( U[i][j] > T[i][j] )
Y[i][j] = 1.0;
else
Y[i][j] = 0.0;
T = exp ( -1.0/at ) * T + vt * Y; //ERROR LINE 92
return int( Y.Sum( ) );
}
int PCNN::FastIterate( rimage & A )
{
rimage work ( F.Vert(), F.Horz()), Q ( F. Vert () , F.Horz ());
int n=0;
if( vf != 0 ) work = Y.Convolve( K ); //ERROR LINE 99
F = exp( - 1.0/af ) * F + vf * work + A; //ERROR LINE 100
Y.Clear();
do {
Q = Y; n++;
L = Quantized( ); //ERROR LINE 104
U = F * (1.0 + beta * L); //ERROR LINE 105
for( int i=0; i<vert; i++ ) for( int j=0; j<horz; j++ )
if( U[i][j] > T[i][j] )
Y[i][j] = 1.0;
}
while( (Q + Y).Sum() > 1 && n < 5);
T = exp( -1.0/at ) * T + vt * Y; //ERROR LINE 111
return int ( Y.Sum( ) );
}
编译日志:
g++.exe -c "PCNN Code/pcnn2d.c" -o
"PCNN Code/pcnn2d.o" -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"
-I"C:/Dev-Cpp/include/c++/3.4.2/backward"
-I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"
-I"C:/Dev-Cpp/include/c++/3.4.2"
-I"C:/Dev-Cpp/include"
In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,
from PCNN Code/vector.h:9,
from PCNN Code/matrix.h:10,
from PCNN Code/rimage.h :15,
from PCNN Code/pcnn2d.h:8,
from PCNN Code/pcnn2d.c:12:
C:/Dev-Cpp/include/c++/3.4.2/backward/backward_warning.h:32:2:
warning: #warning This file includes at least one deprecated or antiquated header.
Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
PCNN Code/pcnn2d.c: In member function `rimage PCNN::Quantized()':
PCNN Code/pcnn2d.c:74: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c: In member function `int PCNN::Iterate(rimage&)':
PCNN Code/pcnn2d.c:83: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:84: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:84: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:85: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:85: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:86: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:86: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:86: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:92: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:92: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c: In member function `int PCNN::FastIterate(rimage&)':
PCNN Code/pcnn2d.c:99: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:100: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:100: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:104: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:105: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:105: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:105: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:111: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
PCNN Code/pcnn2d.c:111: error: no matching function for call to `rimage::rimage(rimage)'
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&)
make.exe: *** ["PCNN Code/pcnn2d.o"] Error 1
Execution terminated
最佳答案
它谈到不完全匹配对 rimage::rimage(rimage&)
的调用。这通常意味着您正在尝试从临时对象进行复制,如果它是 rimage::rimage(const rimage&)
可以使用此复制构造函数。
为什么不是呢?因为代码是 15 年前的,从以前就有 C++ 标准?
关于c++ - "no matching function for call to"让我感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348662/
main.cpp #include "Primes.h" #include int main(){ std::string choose; int num1, num2; w
似乎函数 qwertyInches() 应该可以工作但是当我在 main() 中调用它时它给了我 [Error] called object 'qwertyInches' is not a funct
我无法理解 C++ 语法的工作原理。 #include using namespace std; class Accumulator{ private: int value; public:
在 类中声明 函数成员时,我们可以同时执行这两种操作; Function first; Function() second; 它们之间有什么区别? 最佳答案 Function 代表任意函数: void
“colonna”怎么可能是一个简单的字符串: $('td.' + colonna).css('background-color','#ffddaa'); 可以正确突出显示有趣单元格的背景,并且: $
我正在尝试将网页中的动态参数中继到函数中,然后函数将它们传递给函数内部的调用。比如下面这个简化的代码片段,现在这样,直接传入参数是没有问题的。但是,如何在不为每个可能的 colorbox 参数设置 s
C++ 中是否有一种模式允许您返回一个函数,它返回一个函数本身。例如 std::function func = ...; do { func = func(); } while (func);
我正在将 Windows 程序集移植到 Linux。我有一些代码要移植。我实际上是 linux 中 C 的新手。我知道 C 基础知识是一样的! typedef struct sReader {
我一直在寻找一个很好的解释,所以我很清楚。示例: this.onDeleteHandler(index)}/> 对比 对比 this.nameChangedhandler(event, perso
function(){}.__proto__ === Function.prototype 和 Function.prototype === function(){}.__proto__ 得到不同的结
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function 据说 Propert
VBA 中的函数没有特殊类型。我很难理解如何在 Excel VBA 中将函数作为参数添加到函数中。 我想要完成的是这样的事情: function f(g as function, x as strin
所以我正在尝试制作一个包(我没有在下面包含我的 roxygen2 header ): 我有这个功能: date_from_text % dplyr::mutate(!!name := lubr
尝试从 std::function 派生一个类,对于初学者来说,继承构造函数。这是我的猜测: #include #include using namespace std; template cla
我正在尝试编写一个返回另一个函数的函数。我的目标是编写一个函数,它接受一个对象并返回另一个函数“search”。当我使用键调用搜索函数时,我想从第一个函数中给定的对象返回该键的值。 propertyO
我非常清楚函数式编程技术和命令式编程技术之间的区别。但是现在有一种普遍的趋势是谈论“函数式语言”,这确实让我感到困惑。 当然,像 Haskell 这样的一些语言比 C 等其他语言更欢迎函数式编程。但即
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 8 年前。 Improv
我在stackoverflow上查过很多类似的问题,比如call.call 1 , call.call 2 ,但我是新人,无法发表任何评论。我希望我能找到关于 JavaScript 解释器如何执行这些
向 Twilio 发送 SMS 时,Twilio 会向指定的 URL 发送多个请求,以通过 Webhook 提供该 SMS 传送的状态。我想让这个回调异步,所以我开发了一个 Cloud Functio
作为 IaC 的一部分,A 功能应用 ,让我们将其命名为 FuncAppX 是使用 Terraform 部署的,它有一个内置函数。 我需要使用 Terraform 在函数应用程序中访问相同函数的 Ur
我是一名优秀的程序员,十分优秀!