I have implemented the following code to perform filter2D on a matrix. After I compiled the program it returns Segmentation fault error. In this program, I want to assign an inp
According to the comments, the problem has been found! It is because of casting the Mat
object to InputArray
and OutputArray
in filter2D
function. I changed the implementation to the following program and it works.
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include
#include
#include
#include
//Picture size for input and output are the same
#define MAX1 4096
#define Pxsize MAX1
#define Pysize Pxsize
//Kernel size
#define Kxsize 9
#define Kysize Kxsize
//number of iterations
#define NUM_LOOP 10000
using namespace std;
using namespace cv;
unsigned short int A[Pxsize][Pysize];
unsigned short int B[Pxsize][Pysize];
unsigned short int K[Kxsize][Kysize];
// measuring the time
double pTime = 0, mTime = 10; // to indicate how much program time is (pTime) and how much i want to wait (mTime)
struct timespec start;
int main(){
//singleCore
struct timespec tStart, tEnd;//used to record the processiing time
double tTotal , tBest=10000;//minimum of toltal time will asign to the best time
int w=0;
//filter arguments
Point anchor;
double delta;
int ddepth;
//assign data between 0 and 255 to the input matrix
int i,j;
for (i=0; i