Пример #1
0
wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname )
{
    wxCFStringRef cfname( CFStringCreateWithCharacters( kCFAllocatorDefault,
                                                      uniname->unicode,
                                                      uniname->length ) );
    return wxCFStringRef::AsStringWithNormalizationFormC(cfname);
}
void fimg2d_debug_command(struct fimg2d_bltcmd *cmd)
{
    int i;
    struct fimg2d_param *p = &cmd->blt.param;
    struct fimg2d_image *img;
    struct fimg2d_rect *r;
    struct fimg2d_dma *c;

    if (WARN_ON(!cmd->ctx))
        return;

    pr_info("\n[%s] ctx: %p seq_no(%u)\n", __func__, cmd->ctx, cmd->blt.seq_no);
    pr_info(" op: %s(%d)\n", opname(cmd->blt.op), cmd->blt.op);
    pr_info(" solid color: 0x%lx\n", p->solid_color);
    pr_info(" g_alpha: 0x%x\n", p->g_alpha);
    pr_info(" premultiplied: %d\n", p->premult);
    if (p->dither)
        pr_info(" dither: %d\n", p->dither);
    if (p->rotate)
        pr_info(" rotate: %d\n", p->rotate);
    if (p->repeat.mode) {
        pr_info(" repeat: %d, pad color: 0x%lx\n",
                p->repeat.mode, p->repeat.pad_color);
    }
    if (p->bluscr.mode) {
        pr_info(" bluescreen mode: %d, bs_color: 0x%lx " \
                "bg_color: 0x%lx\n",
                p->bluscr.mode, p->bluscr.bs_color,
                p->bluscr.bg_color);
    }
    if (p->scaling.mode) {
        pr_info(" scaling %d, s:%d,%d d:%d,%d\n",
                p->scaling.mode,
                p->scaling.src_w, p->scaling.src_h,
                p->scaling.dst_w, p->scaling.dst_h);
    }
    if (p->clipping.enable) {
        pr_info(" clipping LT(%d,%d) RB(%d,%d) WH(%d,%d)\n",
                p->clipping.x1, p->clipping.y1,
                p->clipping.x2, p->clipping.y2,
                rect_w(&p->clipping), rect_h(&p->clipping));
    }

    for (i = 0; i < MAX_IMAGES; i++) {
        img = &cmd->image[i];
        r = &img->rect;

        if (!img->addr.type)
            continue;

        pr_info(" %s type: %d addr: 0x%lx\n",
                imagename(i), img->addr.type, img->addr.start);

        pr_info(" %s width: %d height: %d " \
                "stride: %d order: %d format: %s(%d)\n",
                imagename(i), img->width, img->height,
                img->stride, img->order,
                cfname(img->fmt), img->fmt);
        pr_info(" %s rect LT(%d,%d) RB(%d,%d) WH(%d,%d)\n",
                imagename(i), r->x1, r->y1, r->x2, r->y2,
                rect_w(r), rect_h(r));

        c = &cmd->dma[i].base;
        if (c->size) {
            pr_info(" %s dma base addr: 0x%lx " \
                    "size: 0x%x cached: 0x%x\n",
                    imagename(i), c->addr, c->size,
                    c->cached);
        }

        if (img->plane2.type) {
            pr_info(" %s plane2 type: %d addr: 0x%lx\n",
                    imagename(i), img->plane2.type,
                    img->plane2.start);
        }

        c = &cmd->dma[i].plane2;
        if (c->size) {
            pr_info(" %s dma plane2 addr: 0x%lx " \
                    "size: 0x%x cached: 0x%x\n",
                    imagename(i), c->addr, c->size,
                    c->cached);
        }
    }

    if (cmd->dma_all)
        pr_info(" dma size all: 0x%x bytes\n", cmd->dma_all);

    pr_info(" L1: 0x%x L2: 0x%x bytes\n", L1_CACHE_SIZE, L2_CACHE_SIZE);
}
Пример #3
0
int main(int argc, char ** argv)
{
    if(argc != 6 )
      {
	cout <<"Usage: lobmaskCF_Levine <BasalGangliaThalamus_File(BGT)> <Singulate_Mask_File> <OutputFile> -g GridFile"<<endl;
	cout<<"To generate mask for Collenergic Fibres. By: Dr. Azhar Quddus"<<endl;
	exit(1);
      }

    info hdr_info;
    string fname(argv[1]);
    string cfname(argv[2]);

    //Read Header & Make Grid info
    read_analyze_header(fname + ".hdr", hdr_info);

    if(hdr_info.datatype == 2) make_grid<uchar>(argc, argv);
    else {
        if(hdr_info.datatype == 4) make_grid<short>(argc, argv);
        else {
            cout << "Input file has wrong datatype:"
                 <<" only uchar and short are allowed. Exiting... " << endl;
            exit(1);
        }
    }

    int xgrid=grid.sagital[2]-grid.sagital[1];

    //Read Image files
    uchar *img=read_analyze<uchar>(fname, hdr_info);
    uchar *cing=read_analyze<uchar>(cfname, hdr_info);

    //Make Blank Volume
   uchar *mask = new uchar[volume];
   if(!mask) {
       cout << "Memory allocation failed. Exiting..." << endl;
       exit(1);
   }
   fill(mask, mask + volume, (uchar)BACKGROUND);

   //Copy Singulate into output mask
   memcpy(mask,cing,volume);

    //Make Axial slice
   int axial_area=sz[0] * sz[1];
   uchar *axial_in=new uchar[axial_area];
   uchar *axial_out=new uchar[axial_area];

   if(!axial_in || !axial_out)
     {
       cout << "Failed to allocate memory for trace masks. Exiting..." << endl;
       exit(1);
     }

   fill(axial_in, axial_in + axial_area, BACKGROUND);

   //Find Strip end (from top)
   int oldWidth=0;
   int Width=0;
   int slice_break=0;
   int breakSlicesfromTop=0;

   for(int i=sz[2]-1;i>=0;i--)
     {
       get_Axial_Slice(axial_in,img,i);
       if(!Blank_Slice(axial_in,axial_area))
	 {
	   Width=MaxWidth(axial_in,sz[1], sz[0]);
	   breakSlicesfromTop++;
	 }

       if(oldWidth==0)
	 oldWidth=Width;

       if(oldWidth!=0 && Width!=0 && oldWidth!=Width)
	 {
	   slice_break=i+1;
	   break;
	 }
     }
   cout<<"Slice Break 1:"<<slice_break<<endl;

   int stSlices=3 * breakSlicesfromTop;

   //Find full curve end (from top)
   int slice_break2=0;
   for(int i=slice_break;i>=0;i--)
     {
       get_Axial_Slice(axial_in,img,i);
       bool line=true;
       int r=grid.coronal[9];

       if(!FindLine(axial_in,sz[1],sz[0],r))
	 {
	   slice_break2=i+1;
	   break;
	 }
     }
   cout<<"Slice Break 2:"<<slice_break2<<endl;


   cout<<"Valid Slices:";

//Processing Half-Curved regions...
   for(int i=0;i<slice_break2;i++)
     {
       int LastRow=0;

       get_Axial_Slice(axial_in,img,i);
       get_Axial_Slice(axial_out,mask,i);

       if(!Blank_Slice(axial_in,axial_area))
	 {cout<<i<<" " ;
	   for(int r=0;r<sz[1];r++)
	     for(int c=0;c<sz[0];c++)
	       {
		 int pos=r*sz[0]+c;
		 if(axial_in[pos]==0 && axial_in[pos+1]>0)
		   {
		     int C=c+(int)((double)xgrid/4.0);
		     for(int lc=C;lc > (C-xgrid/2);lc--)
		       axial_out[r*sz[0]+lc]=12;
		   }

		 if(axial_in[pos]==0 && axial_in[pos-1]>0)
		   {
		     int C=c-(int)((double)xgrid/4.0);
		     for(int lc=C;lc < (C+xgrid/2);lc++)
		       axial_out[r*sz[0]+lc]=14;
		   }
	       }
	 }

       set_Axial_Slice(axial_out, mask,i);
     }

   //Processing Full-Curved regions...
   for(int i=slice_break2;i<slice_break;i++)
     {
       get_Axial_Slice(axial_in,img,i);
       get_Axial_Slice(axial_out,mask,i);

       if(!Blank_Slice(axial_in,axial_area))
	 {cout<<i<<" " ;
	   for(int r=0;r<sz[1];r++)
	     for(int c=0;c<sz[0];c++)
	       {
		 int pos=r*sz[0]+c;
		 if(axial_in[pos]==0 && axial_in[pos+1]>0)
		   {
int C=c+3;
		     for(int lc=C;lc > (C-xgrid/2);lc--)
		       axial_out[r*sz[0]+lc]=12;
		   }

		 if(axial_in[pos]==0 && axial_in[pos-1]>0)
		   {
int C=c-3;
		     for(int lc=C;lc < (C+xgrid/2);lc++)
		       axial_out[r*sz[0]+lc]=14;
		   }
	       }
	 }

       set_Axial_Slice(axial_out, mask,i);
     }
   
   //Generating straight regions...
   int LTR=grid.coronal[6];
   int LBR=grid.coronal[13];
   int LRC=(int)((double)grid.sagital[3]-(double)xgrid/2.0);
   int LLC=LRC-(int)((double)xgrid/2.0);
LRC=LRC+3;
LLC=LLC+3;

   int RTR=LTR;
   int RBR=LBR;
   int RLC=(int)((double)grid.sagital[5]+(double)xgrid/2.0);
   int RRC=RLC+(int)((double)xgrid/2.0);
RLC=RLC-3;
RRC=RRC-3;

   for(int i=slice_break;i < (slice_break + stSlices); i++)
     {
       get_Axial_Slice(axial_in,img,i);

       cout<<i<<" ";

       get_Axial_Slice(axial_out,mask,i);

       for(int r=LTR;r<=LBR;r++)
	 for(int c=LLC;c<=LRC;c++)
	   axial_out[r*sz[1]+c]=12;

       for(int r=RTR;r<=RBR;r++)
	 for(int c=RLC;c<=RRC;c++)
	   axial_out[r*sz[1]+c]=14;

       set_Axial_Slice(axial_out, mask,i);
     }
     
    // output
    hdr_info.max = 15;
    hdr_info.min = 0;
    hdr_info.datatype = 2;
    cout<<endl;
    cout << "Writing: "<< argv[3]<<"...";
    write_analyze(string(argv[3]), mask,  hdr_info);
    cout <<"Done!"<<endl;
    
    delete [] mask;
    delete [] img;
    delete [] cing;
    delete [] axial_in;
    delete [] axial_out;
    return 0;
}  // end of main
Пример #4
0
void fimg2d_debug_command(struct fimg2d_bltcmd *cmd)
{
	int i;
	struct fimg2d_blit *blt;
	struct fimg2d_image *img;
	struct fimg2d_param *p;
	struct fimg2d_rect *r;
	struct fimg2d_dma *c;

	if (WARN_ON(!cmd->ctx))
		return;

	blt = &cmd->blt;

	/* Common information */
	pr_info("\n[%s] ctx: %p seq_no(%u)\n", __func__,
				cmd->ctx, cmd->blt.seq_no);
	pr_info(" use fence: %d\n", blt->use_fence);
	pr_info(" Update layer : 0x%lx\n", cmd->src_flag);
	if (blt->dither)
		pr_info(" dither: %d\n", blt->dither);
	/* End of common information */

	/* Source information */
	for (i = 0; i < MAX_SRC; i++) {
		img = &cmd->image_src[i];
		if (!img->addr.type)
			continue;

		p = &img->param;
		r = &img->rect;
		c = &cmd->dma_src[i].base;

		pr_info(" SRC[%d] op: %s(%d)\n",
				i, opname(img->op), img->op);
		pr_info(" SRC[%d] type: %d addr: 0x%lx\n",
				i, img->addr.type, img->addr.start);
		pr_info(" SRC[%d] width: %d height: %d ",
				i, img->width, img->height);
		pr_info(" SRC[%d] stride: %d order: %d format: %s(%d)\n",
				i, img->stride, img->order,
				cfname(img->fmt), img->fmt);
		pr_info(" SRC[%d] rect LT(%d,%d) RB(%d,%d) WH(%d,%d)\n",
				i, r->x1, r->y1, r->x2, r->y2,
				rect_w(r), rect_h(r));

		pr_info(" solid color: 0x%lx\n", p->solid_color);
		pr_info(" g_alpha: 0x%x\n", p->g_alpha);
		pr_info(" premultiplied: %d\n", p->premult);

		if (p->rotate)
			pr_info(" rotate: %d\n", p->rotate);
		if (p->repeat.mode) {
			pr_info(" repeat: %d, pad color: 0x%lx\n",
					p->repeat.mode, p->repeat.pad_color);
		}
		if (p->scaling.mode) {
			pr_info(" scaling %d, s:%d,%d d:%d,%d\n",
					p->scaling.mode,
					p->scaling.src_w, p->scaling.src_h,
					p->scaling.dst_w, p->scaling.dst_h);
		}
		if (p->clipping.enable) {
			pr_info(" clipping LT(%d,%d) RB(%d,%d) WH(%d,%d)\n",
					p->clipping.x1, p->clipping.y1,
					p->clipping.x2, p->clipping.y2,
					rect_w(&p->clipping),
					rect_h(&p->clipping));
		}

		if (c->size) {
			pr_info(" SRC[%d] dma base addr: %#lx size: %zd cached: %zd\n",
					i, c->addr, c->size, c->cached);
			pr_info(" SRC[%d] dma iova: %#lx, offset: %zd\n",
					i, (unsigned long)c->iova, c->offset);
		}

	}
	/* End of source information */

	/* Destination information */
	img = &cmd->image_dst;

	p = &img->param;
	r = &img->rect;
	c = &cmd->dma_dst.base;

	pr_info(" DST type: %d addr: 0x%lx\n",
			img->addr.type, img->addr.start);
	pr_info(" DST width: %d height: %d stride: %d order: %d format: %s(%d)\n",
			img->width, img->height, img->stride, img->order,
			cfname(img->fmt), img->fmt);
	pr_info(" DST rect LT(%d,%d) RB(%d,%d) WH(%d,%d)\n",
			r->x1, r->y1, r->x2, r->y2,
			rect_w(r), rect_h(r));

	pr_info(" solid color: 0x%lx\n", p->solid_color);
	pr_info(" g_alpha: 0x%x\n", p->g_alpha);
	pr_info(" premultiplied: %d\n", p->premult);

	if (c->size) {
		pr_info(" DST dma base addr: %#lx size: %zd cached: %zd\n",
				c->addr, c->size, c->cached);
		pr_info(" DST dma iova: %#lx offset: %zd\n",
				(unsigned long)c->iova, c->offset);
	}
	/* End of destination */

	if (cmd->dma_all)
		pr_info(" dma size all: %zd bytes\n", cmd->dma_all);
}