# element name is the name of a command and the value is
# a script that loads the command.
-set auto_index(display2BindingSet) [list source [file join $dir Display2Binding.wish]]
-set auto_index(colormapChange) [list source [file join $dir Display2Colormap.wish]]
-set auto_index(display2DesktopSet) [list source [file join $dir Display2Desktop.wish]]
-set auto_index(display2ETCSet) [list source [file join $dir Display2ETCSet.wish]]
-set auto_index(fileOpenWinCreate) [list source [file join $dir Display2File.wish]]
-set auto_index(fileNewWinCreate) [list source [file join $dir Display2File.wish]]
-set auto_index(seqFileOpenWinCreate) [list source [file join $dir Display2File.wish]]
-set auto_index(seqFileNewWinCreate) [list source [file join $dir Display2File.wish]]
+set auto_index(roiAreaSelectStart) [list source [file join $dir RoiAreaSelect.wish]]
+set auto_index(roiAreaSelectMotion) [list source [file join $dir RoiAreaSelect.wish]]
+set auto_index(roiAreaSelectEnd) [list source [file join $dir RoiAreaSelect.wish]]
+set auto_index(roiAreaSelectOK) [list source [file join $dir RoiAreaSelect.wish]]
+set auto_index(projectionRecreate) [list source [file join $dir ProjectionUtil.wish]]
+set auto_index(projectionCreate) [list source [file join $dir ProjectionUtil.wish]]
+set auto_index(projectionClear) [list source [file join $dir ProjectionUtil.wish]]
+set auto_index(projectionChange) [list source [file join $dir ProjectionUtil.wish]]
set auto_index(fileOpen) [list source [file join $dir Display2Image.wish]]
set auto_index(mainImagePut) [list source [file join $dir Display2Image.wish]]
set auto_index(overviewImagePut) [list source [file join $dir Display2Image.wish]]
+set auto_index(roiAreaFFT) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(splineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(rectangleNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(lineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(pointDistance) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(pointDistance2) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(vectorAngle) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(coordGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(coordGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(dataGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(dataGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(pointSet) [list source [file join $dir RoiAreaUtil.wish]]
+set auto_index(roiAreaZoomIn) [list source [file join $dir RoiAreaZoom.wish]]
+set auto_index(roiAreaZoomOut) [list source [file join $dir RoiAreaZoom.wish]]
+set auto_index(roiAreaZoom) [list source [file join $dir RoiAreaZoom.wish]]
+set auto_index(colormapChange) [list source [file join $dir Display2Colormap.wish]]
+set auto_index(display2SetVar) [list source [file join $dir Display2Init.wish]]
+set auto_index(display2InitVar) [list source [file join $dir Display2Init.wish]]
+set auto_index(display2InitVarSet) [list source [file join $dir Display2Init.wish]]
+set auto_index(diplay2CanvasInit) [list source [file join $dir Display2Init.wish]]
+set auto_index(display2Init) [list source [file join $dir Display2Init.wish]]
+set auto_index(roiInformationWinCreate) [list source [file join $dir Display2InfoROI.wish]]
+set auto_index(roiLineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
+set auto_index(roiSplineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
+set auto_index(roiRectangleInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
+set auto_index(roiAnalysisFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
set auto_index(histgramGraphCreate) [list source [file join $dir Display2Info.wish]]
set auto_index(display2InformationWinCreate) [list source [file join $dir Display2Info.wish]]
set auto_index(fileReopen) [list source [file join $dir Display2Info.wish]]
set auto_index(ctfInformationWinCreate) [list source [file join $dir Display2Info.wish]]
set auto_index(unitCellInformationWinCreate) [list source [file join $dir Display2Info.wish]]
set auto_index(scaleInfoWinCreate) [list source [file join $dir Display2Info.wish]]
-set auto_index(roiInformationWinCreate) [list source [file join $dir Display2InfoROI.wish]]
-set auto_index(roiLineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
-set auto_index(roiSplineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
-set auto_index(roiRectangleInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
-set auto_index(roiAnalysisFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
-set auto_index(display2SetVar) [list source [file join $dir Display2Init.wish]]
-set auto_index(display2InitVar) [list source [file join $dir Display2Init.wish]]
-set auto_index(display2InitVarSet) [list source [file join $dir Display2Init.wish]]
-set auto_index(diplay2CanvasInit) [list source [file join $dir Display2Init.wish]]
-set auto_index(display2Init) [list source [file join $dir Display2Init.wish]]
-set auto_index(display2MenuSet) [list source [file join $dir Display2Menu.wish]]
-set auto_index(menuFileCreate) [list source [file join $dir Display2Menu.wish]]
-set auto_index(menuSeqFileCreate) [list source [file join $dir Display2Menu.wish]]
-set auto_index(menuWindowCreate) [list source [file join $dir Display2Menu.wish]]
-set auto_index(menuInfoCreate) [list source [file join $dir Display2Menu.wish]]
-set auto_index(menuHelpCreate) [list source [file join $dir Display2Menu.wish]]
-set auto_index(menuExitCreate) [list source [file join $dir Display2Menu.wish]]
-set auto_index(display2MenuSet2) [list source [file join $dir Display2Menu2.wish]]
-set auto_index(roiRelatedObjectRecreate) [list source [file join $dir Display2MenuROI.wish]]
-set auto_index(menuRoiCreate) [list source [file join $dir Display2MenuROI.wish]]
-set auto_index(menuRoiCancelCommand) [list source [file join $dir Display2MenuROI.wish]]
-set auto_index(menuRoiSingleMultiTransform) [list source [file join $dir Display2MenuROI.wish]]
-set auto_index(menuMultiRoiOKCommand) [list source [file join $dir Display2MenuROI.wish]]
-set auto_index(menuMultiRoiAllDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
-set auto_index(menuMultiRoiDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
-set auto_index(menuEditCreate) [list source [file join $dir Display2MenuROI.wish]]
set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
-set auto_index(layerLineRecreate) [list source [file join $dir LayerLineUtil.wish]]
-set auto_index(layerLineCreate) [list source [file join $dir LayerLineUtil.wish]]
-set auto_index(layerLineClear) [list source [file join $dir LayerLineUtil.wish]]
-set auto_index(layerLineChange) [list source [file join $dir LayerLineUtil.wish]]
-set auto_index(projectionRecreate) [list source [file join $dir ProjectionUtil.wish]]
-set auto_index(projectionCreate) [list source [file join $dir ProjectionUtil.wish]]
-set auto_index(projectionClear) [list source [file join $dir ProjectionUtil.wish]]
-set auto_index(projectionChange) [list source [file join $dir ProjectionUtil.wish]]
set auto_index(roiAreaCreateStart) [list source [file join $dir RoiAreaCreate.wish]]
set auto_index(roiAreaCreateMotion) [list source [file join $dir RoiAreaCreate.wish]]
set auto_index(roiAreaCreateEnd) [list source [file join $dir RoiAreaCreate.wish]]
set auto_index(splineCreate) [list source [file join $dir RoiAreaCreate.wish]]
set auto_index(knobShow) [list source [file join $dir RoiAreaCreate.wish]]
set auto_index(knobHide) [list source [file join $dir RoiAreaCreate.wish]]
-set auto_index(roiMultiAreaInfoSave) [list source [file join $dir RoiAreaFile.wish]]
-set auto_index(roiMultiAreaInfoLoad) [list source [file join $dir RoiAreaFile.wish]]
-set auto_index(roiAreaFileSave) [list source [file join $dir RoiAreaFile.wish]]
-set auto_index(roiAreaMoveStart) [list source [file join $dir RoiAreaMove.wish]]
-set auto_index(roiAreaMoveMotion) [list source [file join $dir RoiAreaMove.wish]]
-set auto_index(roiAreaMoveEnd) [list source [file join $dir RoiAreaMove.wish]]
-set auto_index(rectangleMove) [list source [file join $dir RoiAreaMove.wish]]
-set auto_index(lineMove) [list source [file join $dir RoiAreaMove.wish]]
-set auto_index(splineMove) [list source [file join $dir RoiAreaMove.wish]]
+set auto_index(display2BindingSet) [list source [file join $dir Display2Binding.wish]]
+set auto_index(display2MenuSet) [list source [file join $dir Display2Menu.wish]]
+set auto_index(menuFileCreate) [list source [file join $dir Display2Menu.wish]]
+set auto_index(menuSeqFileCreate) [list source [file join $dir Display2Menu.wish]]
+set auto_index(menuWindowCreate) [list source [file join $dir Display2Menu.wish]]
+set auto_index(menuInfoCreate) [list source [file join $dir Display2Menu.wish]]
+set auto_index(menuHelpCreate) [list source [file join $dir Display2Menu.wish]]
+set auto_index(menuExitCreate) [list source [file join $dir Display2Menu.wish]]
+set auto_index(roiRelatedObjectRecreate) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(menuRoiCreate) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(menuRoiCancelCommand) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(menuRoiSingleMultiTransform) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(menuMultiRoiOKCommand) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(menuMultiRoiAllDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(menuMultiRoiDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(menuEditCreate) [list source [file join $dir Display2MenuROI.wish]]
set auto_index(roiAreaResizeStart) [list source [file join $dir RoiAreaResize.wish]]
set auto_index(roiAreaResizeMotion) [list source [file join $dir RoiAreaResize.wish]]
set auto_index(roiAreaResizeEnd) [list source [file join $dir RoiAreaResize.wish]]
set auto_index(lineRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
set auto_index(splineRotate) [list source [file join $dir RoiAreaRotate.wish]]
set auto_index(splineRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
-set auto_index(roiAreaSelectStart) [list source [file join $dir RoiAreaSelect.wish]]
-set auto_index(roiAreaSelectMotion) [list source [file join $dir RoiAreaSelect.wish]]
-set auto_index(roiAreaSelectEnd) [list source [file join $dir RoiAreaSelect.wish]]
-set auto_index(roiAreaSelectOK) [list source [file join $dir RoiAreaSelect.wish]]
-set auto_index(roiAreaFFT) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(splineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(rectangleNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(lineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(pointDistance) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(pointDistance2) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(vectorAngle) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(coordGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(coordGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(dataGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(dataGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(pointSet) [list source [file join $dir RoiAreaUtil.wish]]
-set auto_index(roiAreaZoomIn) [list source [file join $dir RoiAreaZoom.wish]]
-set auto_index(roiAreaZoomOut) [list source [file join $dir RoiAreaZoom.wish]]
-set auto_index(roiAreaZoom) [list source [file join $dir RoiAreaZoom.wish]]
-set auto_index(ScaleRecreate) [list source [file join $dir ScaleUtil.wish]]
-set auto_index(ScaleCreate) [list source [file join $dir ScaleUtil.wish]]
-set auto_index(ScaleClear) [list source [file join $dir ScaleUtil.wish]]
-set auto_index(ScaleChange) [list source [file join $dir ScaleUtil.wish]]
+set auto_index(roiMultiAreaInfoSave) [list source [file join $dir RoiAreaFile.wish]]
+set auto_index(roiMultiAreaInfoLoad) [list source [file join $dir RoiAreaFile.wish]]
+set auto_index(roiAreaFileSave) [list source [file join $dir RoiAreaFile.wish]]
+set auto_index(layerLineRecreate) [list source [file join $dir LayerLineUtil.wish]]
+set auto_index(layerLineCreate) [list source [file join $dir LayerLineUtil.wish]]
+set auto_index(layerLineClear) [list source [file join $dir LayerLineUtil.wish]]
+set auto_index(layerLineChange) [list source [file join $dir LayerLineUtil.wish]]
+set auto_index(fileOpenWinCreate) [list source [file join $dir Display2File.wish]]
+set auto_index(fileNewWinCreate) [list source [file join $dir Display2File.wish]]
+set auto_index(seqFileOpenWinCreate) [list source [file join $dir Display2File.wish]]
+set auto_index(seqFileNewWinCreate) [list source [file join $dir Display2File.wish]]
+set auto_index(display2DesktopSet) [list source [file join $dir Display2Desktop.wish]]
set auto_index(sectionInit) [list source [file join $dir SectionUtil.wish]]
set auto_index(sectionRecreateAll) [list source [file join $dir SectionUtil.wish]]
set auto_index(sectionRecreate) [list source [file join $dir SectionUtil.wish]]
set auto_index(sectionClearAll) [list source [file join $dir SectionUtil.wish]]
set auto_index(sectionClear) [list source [file join $dir SectionUtil.wish]]
set auto_index(sectionChange) [list source [file join $dir SectionUtil.wish]]
+set auto_index(ScaleRecreate) [list source [file join $dir ScaleUtil.wish]]
+set auto_index(ScaleCreate) [list source [file join $dir ScaleUtil.wish]]
+set auto_index(ScaleClear) [list source [file join $dir ScaleUtil.wish]]
+set auto_index(ScaleChange) [list source [file join $dir ScaleUtil.wish]]
set auto_index(unitCellRecreate) [list source [file join $dir UnitCell.wish]]
+set auto_index(display2MenuSet2) [list source [file join $dir Display2Menu2.wish]]
+set auto_index(roiAreaMoveStart) [list source [file join $dir RoiAreaMove.wish]]
+set auto_index(roiAreaMoveMotion) [list source [file join $dir RoiAreaMove.wish]]
+set auto_index(roiAreaMoveEnd) [list source [file join $dir RoiAreaMove.wish]]
+set auto_index(rectangleMove) [list source [file join $dir RoiAreaMove.wish]]
+set auto_index(lineMove) [list source [file join $dir RoiAreaMove.wish]]
+set auto_index(splineMove) [list source [file join $dir RoiAreaMove.wish]]
+set auto_index(display2ETCSet) [list source [file join $dir Display2ETCSet.wish]]
/* prototype begin */
extern void lmrcImageProjection(mrcImage* out, mrcImage* in,
lmrcImageProjectionInfo* linfo);
+extern void lmrcImageProjectionMIP(mrcImage* out, mrcImage* in,
+ lmrcImageProjectionInfo* linfo);
/* prototype end */
#endif
}
+void
+lmrcImageProjectionMIP( mrcImage* out, mrcImage* in,
+ lmrcImageProjectionInfo* linfo)
+{
+ mrcImageParaTypeReal x, y, z;
+ double data, dataout;
+
+ switch(linfo->mode) {
+ case 0: { // along z-axis
+ out->Header = in->Header;
+ out->HeaderN.x = in->HeaderN.x;
+ out->HeaderN.y = in->HeaderN.y;
+ out->HeaderN.z = 1.0;
+ mrcInit(out, NULL);
+ for(z=0; z<in->HeaderN.z; z++) {
+ for(y=0; y<in->HeaderN.y; y++) {
+ for(x=0; x<in->HeaderN.x; x++) {
+ mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(out, x, y, 0.0, &dataout, mrcPixelRePart, mrcPixelHowNearest);
+ if(dataout<data) dataout = data;
+ mrcPixelDataSet(out, x, y, 0.0, dataout, mrcPixelRePart);
+ }
+ }
+ }
+ break;
+ }
+ case 1: { // along x-axis
+ out->Header = in->Header;
+ out->HeaderN.x = in->HeaderN.y;
+ out->HeaderN.y = in->HeaderN.z;
+ out->HeaderN.z = 1;
+ mrcInit(out, NULL);
+ for(z=0; z<in->HeaderN.z; z++) {
+ for(y=0; y<in->HeaderN.y; y++) {
+ for(x=0; x<in->HeaderN.x; x++) {
+ mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(out, y, z, 0.0, &dataout, mrcPixelRePart, mrcPixelHowNearest);
+ if(dataout<data) dataout = data;
+ mrcPixelDataSet(out, y, z, 0.0, dataout, mrcPixelRePart);
+ }
+ }
+ }
+ break;
+ }
+ case 2: { // along y-axis
+ out->Header = in->Header;
+ out->HeaderN.x = in->HeaderN.z;
+ out->HeaderN.y = in->HeaderN.x;
+ out->HeaderN.z = 1.0;
+ mrcInit(out, NULL);
+ for(z=0; z<in->HeaderN.z; z++) {
+ for(y=0; y<in->HeaderN.y; y++) {
+ for(x=0; x<in->HeaderN.x; x++) {
+ mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(out, z, x, 0.0, &dataout, mrcPixelRePart, mrcPixelHowNearest);
+ if(dataout<data) dataout = data;
+ mrcPixelDataSet(out, z, x, 0.0, dataout, mrcPixelRePart);
+ }
+ }
+ }
+ break;
+ }
+ case 3: { // to y-axis
+ out->Header = in->Header;
+ out->HeaderN.x = in->HeaderN.y;
+ out->HeaderN.y = 1.0;
+ out->HeaderN.z = 1.0;
+ mrcInit(out, NULL);
+ for(z=0; z<in->HeaderN.z; z++) {
+ for(y=0; y<in->HeaderN.y; y++) {
+ for(x=0; x<in->HeaderN.x; x++) {
+ mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(out, y, 0.0, 0.0, &dataout, mrcPixelRePart, mrcPixelHowNearest);
+ if(dataout<data) dataout = data;
+ mrcPixelDataSet(out, y, 0.0, 0.0, dataout, mrcPixelRePart);
+ }
+ }
+ }
+ break;
+ }
+ case 4: { // to x-axis
+ out->Header = in->Header;
+ out->HeaderN.y = 1.0;
+ out->HeaderN.z = 1.0;
+ mrcInit(out, NULL);
+ for(z=0; z<in->HeaderN.z; z++) {
+ for(y=0; y<in->HeaderN.y; y++) {
+ for(x=0; x<in->HeaderN.x; x++) {
+ mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(out, x, 0.0, 0.0, &dataout, mrcPixelRePart, mrcPixelHowNearest);
+ if(dataout<data) dataout = data;
+ mrcPixelDataSet(out, x, 0.0, 0.0, dataout, mrcPixelRePart);
+ }
+ }
+ }
+ break;
+ }
+ case 5: { // to z-axis
+ out->Header = in->Header;
+ out->HeaderN.x = out->HeaderN.z;
+ out->HeaderN.y = 1.0;
+ out->HeaderN.z = 1.0;
+ mrcInit(out, NULL);
+ for(z=0; z<in->HeaderN.z; z++) {
+ for(y=0; y<in->HeaderN.y; y++) {
+ for(x=0; x<in->HeaderN.x; x++) {
+ mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
+ mrcPixelDataGet(out, z, 0.0, 0.0, &dataout, mrcPixelRePart, mrcPixelHowNearest);
+ if(dataout<data) dataout = data;
+ mrcPixelDataSet(out, z, 0.0, 0.0, dataout, mrcPixelRePart);
+ }
+ }
+ }
+ break;
+ }
+ default: {
+ fprintf(stderr, "Not supported Mode: %ld\n", linfo->mode);
+ }
+ }
+}
+
+
/* prototype begin */
extern void lmrcImageProjection(mrcImage* out, mrcImage* in,
lmrcImageProjectionInfo* linfo);
+extern void lmrcImageProjectionMIP(mrcImage* out, mrcImage* in,
+ lmrcImageProjectionInfo* linfo);
/* prototype end */
#endif
mrcImageParaTypeReal xorg, yorg, zorg;
int irange, numrange;
unsigned char* thumbImage;
- double sum, min, max;
+ double sum, min, max, mean;
mrcImage tmpImage;
lmrcImageProjectionInfo lpro;
dims[1] = in[0].HeaderN.y;
dims[2] = in[0].HeaderN.x;
+ /*
chunk[0] = dims[0];
chunk[1] = dims[1];
chunk[2] = dims[2];
-
+ */
+ chunk[0] = 32;
+ chunk[1] = 64;
+ chunk[2] = 64;
+
datasetPropertyID = H5Pcreate(H5P_DATASET_CREATE);
status = H5Pset_chunk(datasetPropertyID, 3, chunk);
for(i=0; i<256; i++) hist[i] = 0;
for(i=0; i<1024; i++) hist1024[i] = 0;
+ // image
DEBUGPRINT("image\n");
if(in[itime].HeaderAMax<=in[itime].HeaderAMin) {
fprintf(stderr, "Image data is flat\n");
irange=1<<ires;
DEBUGPRINT2("res: %d irange %d\n", ires, irange);
for(z=0; z<dims[0]; z++) {
- if(0==(((int)(z/dims[0]*100))%10)) {
+ if(0==(((int)(z/(double)(dims[0]-1)*100))%10)) {
DEBUGPRINT2("%d/%llu\n", (int)z, dims[0]);
}
for(y=0; y<dims[1]; y++) {
data = 0;
}
image[i64] = (float)data;
- }
- }
- }
+ } // x
+ } // y
+ } // z
DEBUGPRINT("MIN/MAX\n");
min= max = image[0];
hist[iLevel]++;
}
}
+ // Image
DEBUGPRINT("H5Dcreate");
dsetID = H5Dcreate(gIDChannel, tmp, H5T_IEEE_F32LE, dspaceID, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
status = H5Dwrite(dsetID, H5T_IEEE_F32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, image);
DEBUGPRINT3("%s End: dataset %lld status %d\n", tmp, dsetID, status);
+ memoryFree(image);
status = H5Dclose(dsetID);
status = H5Sclose(dspaceID);
// Histogram
}
status = H5Gclose(gIDTime);
}
- //memoryFree(image);
dims[0]/=2;
dims[1]/=2;
dims[2]/=2;
status = H5Gclose(gIDRes);
}
+ // DataSetInfo
DEBUGPRINT("DataSetInfo\n");
{
char* dsiGroupName[] = {"Channel 0", "Image", "Imaris", "ImarisDataSet", "Log", "TImeInfo"};
}
// Channel 0
lhdfAttributeString(dsiGroupID[0], "Name", "No");
- lhdfAttributeString(dsiGroupID[0], "Color", "1 0 0");
+ lhdfAttributeString(dsiGroupID[0], "Color", "1.000 0.000 0.000");
lhdfAttributeString(dsiGroupID[0], "ColorMode", "BaseColor");
- lhdfAttributeReal2String(dsiGroupID[0], "ColorOpacity", 1.00);
+ lhdfAttributeReal2String(dsiGroupID[0], "ColorOpacity", 1.000);
lhdfAttributeReal2String(dsiGroupID[0], "Min", in[0].HeaderAMax);
lhdfAttributeReal2String(dsiGroupID[0], "Max", in[0].HeaderAMin);
// Image
lhdfAttributeReal2String(dsiGroupID[1], "ExtMax0", (in[0].HeaderStartN.x+dims[2]-1)*in[0].HeaderLength.x);
lhdfAttributeReal2String(dsiGroupID[1], "ExtMax1", (in[0].HeaderStartN.y+dims[1]-1)*in[0].HeaderLength.y);
lhdfAttributeReal2String(dsiGroupID[1], "ExtMax2", (in[0].HeaderStartN.z+dims[0]-1)*in[0].HeaderLength.z);
+ if(1<nres) {
+ lhdfAttributeString(dsiGroupID[1], "ResampleDimensionX", "true");
+ lhdfAttributeString(dsiGroupID[1], "ResampleDimensionY", "true");
+ lhdfAttributeString(dsiGroupID[1], "ResampleDimensionZ", "true");
+ }
lhdfAttributeString(dsiGroupID[1], "Unit", "um");
lhdfAttributeInt2String(dsiGroupID[1], "X", dims[2]);
lhdfAttributeInt2String(dsiGroupID[1], "Y", dims[1]);
DEBUGPRINT("DataSetTimes\n");
DEBUGPRINT("Thumbnail\n");
// Thumbnail
- sprintf(tmp, "%s/%s", groupName[3], "Data");
- thumbImage = (unsigned char*) memoryAllocate(sizeof(unsigned char)*dims[0]*dims[1], "in imaris");
- lpro.mode = 0;
- lmrcImageProjection(&tmpImage, &in[0], &lpro);
-
- min = FLT_MAX;
- max = FLT_MIN;
- for(x=0; x<dims[2]; x++) {
- for(y=0; y<dims[1]; y++) {
- mrcPixelDataGet(&tmpImage, x, y, 0, &data, mrcPixelRePart, mrcPixelHowNearest);
- if(data<min) min = data;
- if(max<data) max = data;
- }
- }
- DEBUGPRINT1("min: %f\n", min);
- DEBUGPRINT1("max: %f\n", max);
- for(x=0; x<dims[2]; x++) {
- for(y=0; y<dims[1]; y++) {
- mrcPixelDataGet(&tmpImage, x, y, 0, &data, mrcPixelRePart, mrcPixelHowNearest);
- if(max<=min) {
- thumbImage[(int)(x+y*dims[2])] = 0;
- } else {
- thumbImage[(int)(x+y*dims[2])] = (int)(255*((data-min)/(max-min)-0.5));
+ {
+ hsize_t dimsT[4];
+ double zoomx, zoomy;
+ hsize_t dimsX, dimsY;
+ float orgx, orgy, orgz;
+ zoomx = zoomy = 1;
+ if(in[0].HeaderN.x<in[0].HeaderN.y) {
+ zoomx *= in[0].HeaderN.x/(double)in[0].HeaderN.y;
+ } else {
+ zoomy *= in[0].HeaderN.y/(double)in[0].HeaderN.x;
+ }
+ dimsT[0] = dimsX = ((int)(256*zoomx));
+ dimsT[1] = ((int)(256*zoomy))*4; // RGBA
+ dimsY = dimsT[1]/4;
+ dimsT[2]=dimsT[3]=1;
+ DEBUGPRINT2("zoom: %f %f\n", zoomx, zoomy);
+ DEBUGPRINT4("dimsT: %llu %llu - %llu %llu\n", dimsT[0], dimsT[1], dimsX, dimsY);
+ sprintf(tmp, "%s/%s", groupName[3], "Data");
+ thumbImage = (unsigned char*) memoryAllocate(sizeof(unsigned char)*dimsT[0]*dimsT[1], "in imaris");
+ lpro.mode = 0;
+ lmrcImageProjectionMIP(&tmpImage, &in[0], &lpro);
+ {
+#ifdef DEBUG2
+ mrcFileWrite(&tmpImage, "/tmp/tmpImage.mrc", "in tet", 0);
+#endif
}
- }
- }
- dspaceID = H5Screate_simple(2, &(dims[1]), NULL);
- sprintf(tmp, "%s/%s", groupName[3], "Data");
- dsetID = H5Dcreate2(groupID[3], tmp, H5T_STD_U8LE, dspaceID, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- status = H5Dwrite(dsetID, H5T_NATIVE_CHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, thumbImage);
- mrcImageFree(&tmpImage, "in lmrc2hdfimaris");
+ min = FLT_MAX;
+ max = FLT_MIN;
+ sum = 0;
+ for(x=0; x<in[0].HeaderN.x; x++) {
+ for(y=0; y<in[0].HeaderN.y; y++) {
+ mrcPixelDataGet(&tmpImage, x, y, 0, &data, mrcPixelRePart, mrcPixelHowNearest);
+ sum += data;
+ if(data<min) min = data;
+ if(max<data) max = data;
+ }
+ }
+ mean = sum/in[0].HeaderN.x/in[0].HeaderN.y;
+
+ DEBUGPRINT1("min: %f\n", min);
+ DEBUGPRINT1("max: %f\n", max);
+ DEBUGPRINT1("mean: %f\n", mean);
+ for(x=0; x<dimsX; x++) {
+ for(y=0; y<dimsY; y++) {
+ orgx = x/(dimsX - 1)*(in[0].HeaderN.x-1);
+ orgy = y/(dimsY - 1)*(in[0].HeaderN.y-1);
+ mrcPixelDataGet(&tmpImage, orgx, orgy, 0, &data, mrcPixelRePart, mrcPixelHowNearest);
+ if(max==min) {
+ thumbImage[(int)(y*4+x*dimsT[1])] = 0;
+ } else {
+ data = (int)(255.0*(data-(mean - (mean - min)/3))/((mean + (max-mean)/3) - (mean - (mean-min)/3))+0.5);
+ if(data<0) data = 0;
+ if(255<data) data = 255;
+ thumbImage[(int)(y*4+x*dimsT[1])] = data;
+ }
+ thumbImage[(int)(y*4+1+x*dimsT[1])] = 0;
+ thumbImage[(int)(y*4+2+x*dimsT[1])] = 0;
+ thumbImage[(int)(y*4+3+x*dimsT[1])] = 255;
+ }
+ }
- status = H5Dclose(dsetID);
- status = H5Sclose(dspaceID);
+ dspaceID = H5Screate_simple(2, &(dimsT[0]), NULL); // H5S dimension
+ sprintf(tmp, "%s/%s", groupName[3], "Data"); // Group Name
+ dsetID = H5Dcreate2(groupID[3], tmp, H5T_STD_U8LE, dspaceID, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ status = H5Dwrite(dsetID, H5T_NATIVE_CHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, thumbImage); // Write
+ mrcImageFree(&tmpImage, "in lmrc2hdfimaris");
+ status = H5Dclose(dsetID);
+ status = H5Sclose(dspaceID);
+ }
for(i=nGroup-1; i>=0; i--) {
status = H5Gclose(groupID[i]);
}
-/bin/bash: mrc2hdf: No such file or directory
+<HTML>
+<HEAD>
+<TITLE>mrc2hdf</TITLE>
+</HEAD>
+<BODY>
+<H1>mrc2hdf</H1>
+<H2>Usage</H2>
+<PRE>
+Usage: mrc2hdf
+Options:
+ [-i[nput] In (NULL ).as(inFile::mrcInfo ) ] :Optional :Input
+ [-I[nput] InList (NULL ).as(inFileList::mrcInfo ) ] :Optional :Input:FileList
+ [-o[utput] Out (NULL ).as(outFile ) ] :Essential :OutputDataFile
+ [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile
+ [-nres[olution] nResolution (1 ).as(Integer ) ] :Optional :Pyramidal Resolution
+ [-M[ode] hdf5mode (1 ).as(Integer ) ] :Optional :Mode:0 hdf5 1 imaris
+ [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode
+----- Additional Usage -----
+</PRE>
+</BODY>
+</HTML>
@echo "----- Help Message Check -----"
@../$(OSTYPE)/$(OBJECTNAME) -h
-exec:
- @echo "----- Execution Check -----"
-<<<<<<< HEAD
- ../$(OSTYPE)/$(OBJECTNAME)
-=======
- rm -rf data/test.ims data/test2.ims
+exec: data/test.ims data/test2.ims data/test-5.ims data/test2-5.ims data/test4.ims
+ @echo "----- Execution End -----"
+
+
+data/test.ims:data/test.mrc
+ rm -rf data/test.ims
../$(OSTYPE)/$(OBJECTNAME) -i data/test.mrc -o data/test.ims
- ../$(OSTYPE)/$(OBJECTNAME) -i data/test.mrc -o data/test-4.ims -nres 4
+
+data/test-5.ims:data/test.mrc
+ rm -rf data/test-5.ims
+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test.mrc -o data/test-5.ims -nres 5
+
+data/test2.ims:data/test.mrc
+ rm -rf data/test2.ims
../$(OSTYPE)/$(OBJECTNAME) -I data/test.lst -o data/test2.ims
->>>>>>> b4bcf0bc43fa5bd4779cc02ccecd9fcba2de9d48
- @echo "----- Calc check -----"
+
+data/test4.ims:data/test.mrc
+ rm -rf data/test4.ims
+ ../$(OSTYPE)/$(OBJECTNAME) -I data/test4.lst -o data/test4.ims
+
+data/test2-5.ims:data/test.mrc
+ rm -rf data/test2-5.ims
+ ../$(OSTYPE)/$(OBJECTNAME) -I data/test.lst -o data/test2-5.ims -nres 4
clean: