本文整理汇总了C++中V3DPluginCallback2类的典型用法代码示例。如果您正苦于以下问题:C++ V3DPluginCallback2类的具体用法?C++ V3DPluginCallback2怎么用?C++ V3DPluginCallback2使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了V3DPluginCallback2类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: runtime_error
// Get the current V3D image window
/* static */ ImageWindow ImageWindow::current()
{
V3DPluginCallback2* callback = v3d::get_plugin_callback();
if (! callback)
throw std::runtime_error("No V3D callback handler");
return ImageWindow(callback->currentImageWindow());
}
示例2: Invert
void Invert(V3DPluginCallback2 &v3d, QWidget *parent)
{
v3dhandle oldwin = v3d.currentImageWindow();
Image4DSimple* image = v3d.getImage(oldwin);
if (! image)
{
QMessageBox::information(0, title, QObject::tr("No image is open."));
return;
}
// if (image->getDatatype()!=V3D_UINT8)
// {
// QMessageBox::information(0, title, QObject::tr("This demo program only supports 8-bit data. Your current image data type is not supported."));
// return;
// }
Image4DProxy<Image4DSimple> p(image);
// for (uint8* ip=p.begin(); ip<=p.end(); ip++)
// {
// *ip = 255 - *ip;
// }
Image4DProxy_foreach(p, x,y,z,c)
{
double f = 0;
if (p.is_inner(x,y,z,c)) f = p.value_at(x,y,z,c);
f = 255-f;
p.put_at(x,y,z,c, (f));
}
示例3: setSeeds
void setSeeds(V3DPluginCallback2 &v3d, QWidget *parent )
{
v3dhandle curwin = v3d.currentImageWindow();
if (!curwin)
{
v3d_msg("You don't have any image open in the main window.");
return;
}
//ensure the 3d viewer window is open; if not, then open it
v3d.open3DWindow(curwin);
}
示例4: SynTwoImage
void SynTwoImage(V3DPluginCallback2 &v3d, QWidget *parent)
{
v3dhandleList win_list = v3d.getImageWindowList();
if (win_list.size()<2)
{
v3d_msg("You need at least two opened images to synchronize their 3D views!");
return;
}
if (panel)
{
panel->show();
return;
}
else
{
panel = new lookPanel(v3d, parent);
if (panel)
{
panel->show();
panel->raise();
panel->move(100,100);
panel->activateWindow();
}
}
}
示例5: compute
int compute(V3DPluginCallback2 &callback, QWidget *parent)
{
v3dhandle curwin;
curwin=callback.currentImageWindow();
if(!curwin)
{
v3d_msg("No V3D window is available for returning data ... Do nothing.", 0);
return -1;
}
Image4DSimple *p4DImage = callback.getImage(curwin);
if (p4DImage->getDatatype()!=V3D_UINT8)
{
v3d_msg("Now we only support 8 bit image.\n");
return -1;
}
//TODO add datatype judgment
double max_value = 256;
V3DLONG histscale = 256;
QVector<QVector<int> > hist_vec;
QStringList labelsLT;
int nChannel = p4DImage->getCDim();
V3DLONG sz[3];
sz[0] = p4DImage->getXDim();
sz[1] = p4DImage->getYDim();
sz[2] = p4DImage->getZDim();
for (int c=0;c<nChannel;c++)
{
unsigned char * inimg1d = p4DImage->getRawDataAtChannel(c);
QVector<int> tmp;
getHistogram(inimg1d, sz[0]*sz[1]*sz[2], max_value, histscale, tmp);
hist_vec.append(tmp);
labelsLT.append(QString("channel %1").arg(c+1));
}
QString labelRB = QString("%1").arg(max_value);
histogramDialog * dlg = new histogramDialog(hist_vec, labelsLT, labelRB, parent, QSize(500,150), QColor(50,50,50));
dlg->setWindowTitle(QObject::tr("Histogram"));
dlg->show();
return 1;
}
示例6: dosearch
void border_tips::dosearch(V3DPluginCallback2 &callback, QWidget *parent)
{
//select the window to operate
QList <V3dR_MainWindow *> allWindowList = callback.getListAll3DViewers();
QList <V3dR_MainWindow *> selectWindowList;
V3dR_MainWindow * v3dwin;
QList<NeuronTree> * ntTreeList;
int winid;
qDebug("search for 3D windows");
for (V3DLONG i=0;i<allWindowList.size();i++)
{
ntTreeList = callback.getHandleNeuronTrees_Any3DViewer(allWindowList[i]);
if(ntTreeList->size()>0)
selectWindowList.append(allWindowList[i]);
}
qDebug("match and select 3D windows");
if(selectWindowList.size()<1){
v3d_msg("Cannot find 3D view with SWC file. Please load the SWC file you want to identify border tips on.");
return;
}else if(selectWindowList.size()>1){
//pop up a window to select
QStringList items;
for(int i=0; i<selectWindowList.size(); i++){
items.append(callback.getImageName(selectWindowList[i]));
}
bool ok;
QString selectitem = QInputDialog::getItem(parent, QString::fromUtf8("Neuron Stitcher"), QString::fromUtf8("Select A Window to Operate"), items, 0, false, &ok);
if(!ok) return;
for(int i=0; i<selectWindowList.size(); i++){
if(selectitem==callback.getImageName(selectWindowList[i]))
{
winid=i;
break;
}
}
}else{
winid=0;
}
v3dwin = selectWindowList[winid];
neuron_tipspicker_dialog * myDialog = NULL;
myDialog = new neuron_tipspicker_dialog(&callback, v3dwin);
myDialog->show();
}
示例7: MovieFrom3Dviewer
void MovieFrom3Dviewer(V3DPluginCallback2 & v3d, QWidget * parent)
{
v3dhandle curwin = v3d.currentImageWindow();
if (!curwin)
{
v3d_msg("You don't have any image open in the main window.");
return;
}
v3d.open3DWindow(curwin);
if (controlPanel::m_pLookPanel)
{
controlPanel::m_pLookPanel->show();
return;
}
controlPanel* p = new controlPanel(v3d, parent);
if (p) p->show();
}
示例8: SnapShoot3Dviewer
void SnapShoot3Dviewer(V3DPluginCallback2 & v3d, QWidget * parent)
{
v3dhandle curwin = v3d.currentImageWindow();
if (!curwin)
{
v3d_msg("You don't have any image opened in the main window.");
return;
}
v3d.open3DWindow(curwin);
QFileDialog d(parent);
d.setWindowTitle(QObject::tr("Choose output snapshot filename"));
d.setAcceptMode(QFileDialog::AcceptSave);
if (!d.exec()) return;
QString BMPfilename = (d.selectedFiles())[0];
if (BMPfilename.endsWith(".BMP", Qt::CaseInsensitive))
BMPfilename.resize(BMPfilename.length()-4); //by PHC
v3d.screenShot3DWindow(curwin, BMPfilename);
QMessageBox::information(0, title, QString("Snapshot was saved to: %1.BMP\n").arg(BMPfilename));
}
示例9: processImage
void processImage(V3DPluginCallback2 &callback)
{
v3dhandle curwin = callback.currentImageWindow();
if (!curwin)
{
QMessageBox::information(0, "", "You don't have any image open in the main window.");
return;
}
Image4DSimple* p4DImage = callback.getImage(curwin);
if (!p4DImage)
{
QMessageBox::information(0, "", "The image pointer is invalid. Ensure your data is valid and try again!");
return;
}
unsigned char* data1d = p4DImage->getRawData();
V3DLONG N = p4DImage->getXDim();
V3DLONG M = p4DImage->getYDim();
V3DLONG P = p4DImage->getZDim();
ImagePixelType pixeltype = p4DImage->getDatatype();
// display new this was copied from plug_watershed and is substantially different
// from ZZs local enhancement code.
Image4DSimple new4DImage;
new4DImage.setData((unsigned char *)data1d,N, M, P, 1, pixeltype);
v3dhandle newwin = callback.newImageWindow();
callback.setImage(newwin, &new4DImage);
callback.setImageName(newwin, QString("Local_adaptive_enhancement_result"));
callback.updateImageWindow(newwin);
}
示例10: snapShots3Dviewer
void snapShots3Dviewer(V3DPluginCallback2 & v3d, QWidget * parent)
{
QFileDialog inANO_d(parent);
inANO_d.setWindowTitle(QObject::tr("Choose input ano filename"));
inANO_d.setAcceptMode(QFileDialog::AcceptOpen);
if (!inANO_d.exec()) return;
QString inANO_fn = (inANO_d.selectedFiles())[0];
P_ObjectFileType cc;
if(! loadAnoFile(inANO_fn,cc)){
cout <<"Fail to load ano file" <<endl;
return;
}
QString output_d=QFileDialog::getExistingDirectory(parent,
QString(QObject::tr("Choose the output directory, where the snapshots would be saved.")));
float x_rot = QInputDialog::getDouble(parent, "Roation about x axis",
"Rotation about x :",
90, -180, 180);
float y_rot = QInputDialog::getDouble(parent, "Roation about y axis",
"Rotation about y :",
0, -180, 180);
float z_rot = QInputDialog::getDouble(parent, "Roation about z axis",
"Rotation about z :",
90, -180, 180);
for(int i = 0; i <cc.swc_file_list.size(); i++)
{
QString swc_file = cc.swc_file_list[i];
v3d.open3DViewerForSingleSurfaceFile(swc_file);
QList<V3dR_MainWindow * > list_3dviewer = v3d.getListAll3DViewers();
V3dR_MainWindow * surface_win = list_3dviewer[i];
if (!surface_win)
{
cout << "surface_win is empty"<<endl;
}
View3DControl *view = v3d.getView3DControl_Any3DViewer(surface_win);
view->doAbsoluteRot(x_rot,y_rot,z_rot);
swc_file = QFileInfo(swc_file).fileName();
QString BMPfilename = QDir(output_d).absolutePath()+ '/'+swc_file;
// v3d_msg(BMPfilename);
v3d.update_3DViewer(surface_win);
v3d.screenShot_Any3DViewer(surface_win, BMPfilename);
v3d.close3DWindow(surface_win);
}
}
示例11: qDebug
void SetNeuronDisplayColor::do1clickcolor(V3DPluginCallback2 &callback, QWidget *parent)
{
//select the window to operate
QList <V3dR_MainWindow *> allWindowList = callback.getListAll3DViewers();
QList <V3dR_MainWindow *> selectWindowList;
V3dR_MainWindow * v3dwin;
QList<NeuronTree> * ntTreeList;
int winid;
qDebug("search for 3D windows");
for (V3DLONG i=0;i<allWindowList.size();i++)
{
ntTreeList = callback.getHandleNeuronTrees_Any3DViewer(allWindowList[i]);
if(ntTreeList->size()>0)
selectWindowList.append(allWindowList[i]);
}
qDebug("match and select 3D windows");
if(selectWindowList.size()<1){
v3d_msg("Cannot find 3D view with SWC file. Please load the SWC files you want to color in the 3D view");
return;
}else if(selectWindowList.size()>1){
//pop up a window to select
QStringList items;
for(int i=0; i<selectWindowList.size(); i++){
items.append(callback.getImageName(selectWindowList[i]));
}
bool ok;
QString selectitem = QInputDialog::getItem(parent, QString::fromUtf8("1-click neuron color"), QString::fromUtf8("Select A Window to Operate"), items, 0, false, &ok);
if(!ok) return;
for(int i=0; i<selectWindowList.size(); i++){
if(selectitem==callback.getImageName(selectWindowList[i]))
{
winid=i;
break;
}
}
}else{
winid=0;
}
v3dwin = selectWindowList[winid];
//load neuron tree
ntTreeList=callback.getHandleNeuronTrees_Any3DViewer(v3dwin);
for(int i=0; i<ntTreeList->size(); i++){
NeuronTree* p = (NeuronTree*)&(ntTreeList->at(i));
int k=i%8;
p->color.r=R_table[k];
p->color.g=G_table[k];
p->color.b=B_table[k];
p->color.a=255;
}
qDebug("Done Setting Color");
callback.update_3DViewer(v3dwin);
}
示例12: open_sec_editor
int open_sec_editor(V3DPluginCallback2 &callback, QWidget *parent)
{
v3dhandleList win_list = callback.getImageWindowList();
if(win_list.size()<1)
{
QMessageBox::information(0, title, QObject::tr("No image is open."));
return -1;
}
SWCEditorWidget * w = new SWCEditorWidget(callback, parent);
w->show();
//TestDialog dialog(callback, parent);
//if (dialog.exec()!=QDialog::Accepted) return -1;
//dialog.update();
//int i = dialog.i;
//int c = dialog.channel;
//Image4DSimple *p4DImage = callback.getImage(win_list[i]);
//if(p4DImage->getCDim() <= c) {v3d_msg(QObject::tr("The channel isn't existed.")); return -1;}
//V3DLONG sz[3];
//sz[0] = p4DImage->getXDim();
//sz[1] = p4DImage->getYDim();
//sz[2] = p4DImage->getZDim();
//unsigned char * inimg1d = p4DImage->getRawDataAtChannel(c);
//v3dhandle newwin;
//if(QMessageBox::Yes == QMessageBox::question(0, "", QString("Do you want to use the existing windows?"), QMessageBox::Yes, QMessageBox::No))
//newwin = callback.currentImageWindow();
//else
//newwin = callback.newImageWindow();
//p4DImage->setData(inimg1d, sz[0], sz[1], sz[2], sz[3]);
//callback.setImage(newwin, p4DImage);
//callback.setImageName(newwin, QObject::tr("open_sec_editor"));
//callback.updateImageWindow(newwin);
return 1;
}
示例13: domenu
void RivuletPlugin::domenu(const QString &menu_name, V3DPluginCallback2 &callback, QWidget *parent)
{
if (menu_name == tr("tracing"))
{
bool bmenu = true;
input_PARA PARA;
if(callback.getImageWindowList().empty())
{
v3d_msg("Oops... No image opened in V3D...");
return;
}
PARA_RIVULET p;
// fetch parameters from dialog
if (!p.rivulet_dialog())
return;
PARA.threshold = p.threshold;
PARA.connectrate = p.connectrate;
PARA.percentage = p.percentage;
PARA.dumpbranch = p.dumpbranch;
PARA.gap = p.gap;
PARA.stepsize = p.stepsize;
PARA.channel = p.channel;
PARA.sigma = p.sigmavalue;
PARA.alpha_one = p.alpha_one_value;
PARA.alpha_two = p.alpha_two_value;
reconstruction_func(callback,parent,PARA,bmenu);
}
else
{
v3d_msg(tr("Rivulet algorithm for 3D neuron tracing. . "
"Developed by Siqi Liu, Donghao Zhang, 2015-8-25"));
}
}
示例14: reconstruction_func
void reconstruction_func(V3DPluginCallback2 &callback, QWidget *parent, input_PARA &PARA, bool bmenu)
{
unsigned char* data1d = 0;
V3DLONG N,M,P,sc,c;
V3DLONG in_sz[4];
int datatype = 0;
if(bmenu)
{
v3dhandle curwin = callback.currentImageWindow();
if (!curwin)
{
QMessageBox::information(0, "", "You don't have any image open in the main window.");
return;
}
Image4DSimple* p4DImage = callback.getImage(curwin);
if (!p4DImage)
{
QMessageBox::information(0, "", "The image pointer is invalid. Ensure your data is valid and try again!");
return;
}
data1d = p4DImage->getRawData();
N = p4DImage->getXDim();
M = p4DImage->getYDim();
P = p4DImage->getZDim();
sc = p4DImage->getCDim();
datatype = (int) p4DImage->getDatatype();
bool ok1;
if(sc==1)
{
c=1;
ok1=true;
}
else
{
c = QInputDialog::getInteger(parent, "Channel",
"Enter channel NO:",
1, 1, sc, 1, &ok1);
}
if(!ok1)
return;
in_sz[0] = N;
in_sz[1] = M;
in_sz[2] = P;
in_sz[3] = sc;
PARA.inimg_file = p4DImage->getFileName();
}
else
{
if (!simple_loadimage_wrapper(callback,PARA.inimg_file.toStdString().c_str(), data1d, in_sz, datatype))
{
fprintf (stderr, "Error happens in reading the subject file [%s]. Exit. \n",PARA.inimg_file.toStdString().c_str());
return;
}
if(PARA.channel < 1 || PARA.channel > in_sz[3])
{
fprintf (stderr, "Invalid channel number. \n");
return;
}
N = in_sz[0];
M = in_sz[1];
P = in_sz[2];
sc = in_sz[3];
c = PARA.channel;
}
if(datatype!=1){
v3d_msg(QString("Now only support image type UINT8."),bmenu);
return;
}
//main neuron reconstruction code
QString swc_name=PARA.inimg_file+"_smartTracing";
nt_selfcorrect_func tracefunc;
tracefunc.smart_tracing(PARA.inimg_file,swc_name,&callback,c-1);
if(!bmenu)
{
if(data1d) {delete []data1d; data1d = 0;}
}
if(tracefunc.error_code==0)
{
v3d_msg(QString("Now you can drag and drop the generated swc fle [%1] into Vaa3D.").arg(swc_name.toStdString().c_str()),bmenu);
}else{
QString error_msg;
switch(tracefunc.error_code){
case 1:
error_msg="Failed to call APP2 tracing function. Please check if plugin Vaa3D_Neuron2 is installed correctly.";
break;
case 2:
error_msg="Failed to run SVM. Please check your configuration.";
//.........这里部分代码省略.........
示例15: domenu
void IBioformatIOPlugin::domenu(const QString &menu_name, V3DPluginCallback2 &callback, QWidget *parent)
{
if (menu_name == tr("load an image using Bioformats Java library"))
{
// input
QString m_FileName = QFileDialog::getOpenFileName(parent, QObject::tr("Open An Image"),
QDir::currentPath(),
QObject::tr("Image File (*.*)"));
if(m_FileName.isEmpty())
{
printf("\nError: Your image does not exist!\n");
return;
}
// temp
QString baseName = QFileInfo(m_FileName).baseName();
QString tmpfile = QDir::tempPath().append("/").append(baseName).append(".tif");
//
QFile tmpqfile(tmpfile);
if (tmpqfile.exists()) system(qPrintable(QString("rm -f \"%1\"").arg(tmpfile)));
//look for loci_tools.jar
QString lociDir = ("loci_tools.jar");
if (!QFile(lociDir).exists())
{
printf("loci_tools.jar is not in current directory, search v3d app path.\n");
lociDir = getAppPath().append("/loci_tools.jar");
printf(qPrintable(lociDir));
printf("\n");
if (!QFile(lociDir).exists())
{
v3d_msg("Cannot find loci_tools.jar, please download it and make sure it is put under the Vaa3D executable folder, parallel to the Vaa3D executable and the plugins folder.");
return;
}
}
#if defined(Q_OS_WIN32)
QSettings settings("HHMI", "Vaa3D");
QString fileOpenName = settings.value("JavaPath").toString();
if(fileOpenName.isEmpty())
{
fileOpenName = QFileDialog::getOpenFileName(0, QObject::tr("Open Java Executable File"),
"",
QObject::tr("Supported file (*.exe)"
));
if(fileOpenName.isEmpty())
return;
settings.setValue("JavaPath", fileOpenName);
}
QString cmd_loci = QString("\"\"%1\" -cp \"%2\" loci.formats.tools.ImageConverter \"%3\" \"%4\"\"").arg(fileOpenName.toStdString().c_str()).arg(lociDir.toStdString().c_str()).arg(m_FileName.toStdString().c_str()).arg(tmpfile.toStdString().c_str());
#else
QString cmd_loci = QString("java -cp \"%1\" loci.formats.tools.ImageConverter \"%2\" \"%3\"").arg(lociDir.toStdString().c_str()).arg(m_FileName.toStdString().c_str()).arg(tmpfile.toStdString().c_str());
#endif
v3d_msg(cmd_loci, 0);
system(qPrintable(cmd_loci));
if (!tmpqfile.exists())
{
v3d_msg("The temprary file does not exist. The conversion of format using Bioformats has failed. Please sue another way to convert and load using Vaa3D.\n");
return;
}
// load
V3DLONG sz_relative[4];
int datatype_relative = 0;
unsigned char* relative1d = 0;
if (simple_loadimage_wrapper(callback, const_cast<char *>(tmpfile.toStdString().c_str()), relative1d, sz_relative, datatype_relative)!=true)
{
fprintf (stderr, "Error happens in reading the subject file [%s]. Exit. \n",tmpfile.toStdString().c_str());
return;
}
// visualize
Image4DSimple p4DImage;
if(datatype_relative == V3D_UINT8)
{
p4DImage.setData((unsigned char*)relative1d, sz_relative[0], sz_relative[1], sz_relative[2], sz_relative[3], V3D_UINT8);
}
else if(datatype_relative == V3D_UINT16)
{
p4DImage.setData((unsigned char*)relative1d, sz_relative[0], sz_relative[1], sz_relative[2], sz_relative[3], V3D_UINT16);
}
else if(datatype_relative == V3D_FLOAT32)
{
p4DImage.setData((unsigned char*)relative1d, sz_relative[0], sz_relative[1], sz_relative[2], sz_relative[3], V3D_FLOAT32);
}
else
{
printf("\nError: The program only supports UINT8, UINT16, and FLOAT32 datatype.\n");
return;
}
//.........这里部分代码省略.........