main.cpp 2.12 KB
#include <iostream>
#include <fstream>
//#include<stdio.h>
#include <cuda_runtime.h>
#include <stim/math/vector.h>
#include <stim/parser/arguments.h>
#include <stim/parser/filename.h>
#include <stim/grids/image_stack.h>
#include <stim/grids/grid.h>
#include <stim/visualization/colormap.h>

#define pi	3.14159


void ivote3(float* out, float* img, float std, unsigned int x, unsigned int y, unsigned int z);

int main(){

	float sigma =3;

	std::string filename = "nissl-float-512.512.512.vol";
	unsigned int x = 512;
	unsigned int y = 512;
	unsigned int z = 512;
	unsigned int bytes = x*y*z*sizeof(float);

	float* cpuI = (float*) malloc(bytes);

	std::ifstream nissl(filename, std::ios::in | std::ios::binary);
	nissl.read((char*)cpuI, bytes);
	nissl.close();
	

	std::ofstream original("original.vol", std::ofstream::out | std::ofstream::binary);
	original.write((char*)cpuI, bytes);
	original.close();

	float* cpu_grad = (float*) malloc(bytes*3);

	ivote3(cpu_grad, cpuI, sigma, x, y, z);

	std::ofstream blur("blur.vol", std::ofstream::out | std::ofstream::binary);
	blur.write((char*)cpuI, bytes);
	blur.close();


	

	// load the imagestack from the given directory
	//std::string file_mask = "D:\\source\\ivote3\\data\\nissl\\*.png";
	/*stim::image_stack<float> I;
	unsigned int x =512;
	unsigned int y =512;
	unsigned int z =512;
	unsigned int bytes = x*y*z* sizeof(float);
	
	I.read("nissl-float-512.512.512.vol", 512, 512, 512, 1, 0);
	//float test = I.get(128, 128, 128);
	//std::cout<< test<<std::endl;
	float* ptr0 = I.data();

	//stim::cpu2image<float>(I.data(), "after_loading.bmp", 512, 512);
		
	float* cpuI = (float*) malloc(bytes);	
	
	memcpy (cpuI, ptr0, bytes);
	 

	std::ofstream infile ("original-2.vol");
	infile.write((char*)cpuI, bytes);
	infile.close();*/
	//stim::cpu2image(cpuI, "00-cpuI.bmp", 512, 1024);
	
	
	//std::fstream file2;
	//file2.write((char*)cpuI, 512*512*512*sizeof(unsigned char));
	//I.write("data\\volume1.raw");
	//test = ptr0[128*128*128];
	//std::cout<< test<<std::endl;
	
	//memset(I.data(), 0, 512*512*512);
	//I.write("data\\volume.raw");
	//I.save_images("data\\????.bmp");
	



	

		cudaDeviceReset();           
}