gucunlin
gucunlin
关注数: 22
粉丝数: 3
发帖数: 866
关注贴吧数: 21
现在能买的T27和 p3546选那个,8级中坦 这两个应该都有分房保护吧
北京幼升小五证准备开始办了吗? 同问,什么时候开始呢,出公告呀
武清到丰台有拼车的吗,都可以回复 有没有拼车的
这是什么颗粒呀 这是什么颗粒呀
为什么微星d5主板全部缺货 华硕的没有缺货呀?微星不做生意了?
那些需要在本地做几天的核酸的怎么办? 那些需要在本地做几天的核酸的怎么办? 湖南三天,有的地方七天,这个怎么解呀?有没有小伙伴知道
各们大佬,狮式进10级房怎么解? 进去当炮灰,个人打不动,JB弹也无奈呀,最多打个一二发就完了。。有没有不进10级房的办法? 反倒是我的T34-3更好玩。
关于工商银行转中国银行的办法 咨询客服,1、跨行网银和手机银行不支持的 2、必须去柜台办理,还要是那种有外币的工商银行网点,具体还得咨询客服 如果手里的不多的话感觉折腾不太值,多的那就折腾吧。
3月31日 已经8.35了 这已经到正常的卢布价格了,你们会不会还想着继续升值呢。俄只是稳定汇率,不是要升值吧
北京到林州县城接孩子,老铁有没有办法啊? 开车到安阳,怎么办?谁有招,不能让健康码变色。
gdcm解压单文件多张压缩图像,解析后另存为单张文件 gdcm::ImageReader ir; ir.SetFileName(file.c_str()); if (!ir.Read()) return 1; const gdcm::Image& gimage = ir.GetImage(); const gdcm::TransferSyntax syntax = gimage.GetTransferSyntax(); if (gimage.GetTransferSyntax() == gdcm::TransferSyntax::JPEGBaselineProcess1 || gimage.GetTransferSyntax() == gdcm::TransferSyntax::JPEGExtendedProcess2_4 || gimage.GetTransferSyntax() == gdcm::TransferSyntax::JPEGLosslessProcess14_1) {//decompress //http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F27936473%2Fusing-gdcm-grassroots-dicom-to-decompress-dicom-image-data+&urlrefer=7a079e3936e76f6c876b16f94350d88a unsigned int numFrames = gimage.GetDimension(2); const gdcm::Tag rawTag(0x7fe0, 0x0010); // Default to Pixel Data //const gdcm::Tag rawTag(0xFFFE, 0xE000); const gdcm::DataElement& pdde = ir.GetFile().GetDataSet().GetDataElement(rawTag); const gdcm::SequenceOfFragments* sequent = pdde.GetSequenceOfFragments();//图像序列 numFrames = sequent->GetNumberOfFragments(); for (int i = 0; i < sequent->GetNumberOfFragments(); i++) { gdcm::Fragment frag = sequent->GetFragment(i); const gdcm::ByteValue* bv = frag.GetByteValue(); if (!bv) return 1; unsigned long totalLen = bv->GetLength(); std::vector<char> vbuffer; vbuffer.resize(totalLen); char* buffer = &vbuffer[0]; bv->GetBuffer(buffer, totalLen); //ir.GetFile().GetHeader(); const double* origin = gimage.GetOrigin(); //gdcm::PixmapWriter writer; //gdcm::Image newmap = writer.GetImage(); gdcm::Image* newmap = new gdcm::Image; newmap->SetNumberOfDimensions(2); //GetDimensions uint px = gimage.GetDimension(0); uint py = gimage.GetDimension(1); newmap->SetDimension(0, px); newmap->SetDimension(1, py); newmap->SetTransferSyntax(syntax); gdcm::DataElement pixeldata(gdcm::Tag(0x7fe0, 0x0010)); pixeldata.SetByteValue(buffer, totalLen); newmap->SetDataElement(pixeldata); gdcm::PixelFormat pf = gimage.GetPixelFormat(); newmap->SetPixelFormat(pf); //PixelData->GetPhotometricInterpretation( /* PhotometricInterpretation pi = PixelData->GetPhotometricInterpretation(); if( pi.GetSamplesPerPixel() != pf.GetSamplesPerPixel() ) { gdcmWarningMacro( "Photometric Interpretation and Pixel format are not compatible: " << pi.GetSamplesPerPixel() << " vs " << pf.GetSamplesPerPixel() ); return false; }*/ //dicompress gdcm::ImageChangeTransferSyntax* change = new gdcm::ImageChangeTransferSyntax(); gdcm::TransferSyntax newsyntax(gdcm::TransferSyntax::ImplicitVRLittleEndian); change->SetTransferSyntax(newsyntax); change->SetInput(*newmap); bool isok = change->Change(); //gdcm::Bitmap map = change->GetOutputAsBitmap(); gdcm::Image image = change->GetOutput(); int len = image.GetBufferLength(); image.SetIntercept(gimage.GetIntercept()); image.SetSlope(gimage.GetSlope()); image.SetPhotometricInterpretation(gimage.GetPhotometricInterpretation()); /*gdcm::PhotometricInterpretation pi = image.GetPhotometricInterpretation(); gdcm::PixelFormat pf = image.GetPixelFormat(); ushort temp1 = pi.GetSamplesPerPixel(); ushort temp2 = pf.GetSamplesPerPixel(); if (pi.GetSamplesPerPixel() != pf.GetSamplesPerPixel()) { gdcmWarningMacro("Photometric Interpretation and Pixel format are not compatible: " << pi.GetSamplesPerPixel() << " vs " << pf.GetSamplesPerPixel()); return false; }*/ gdcm::DataElement data; data = image.GetDataElement(); //ir.GetFile().GetDataSet().Remove(gdcm::Tag(0xFFFE, 0xE000)); const double* spacing = gimage.GetSpacing(); image.SetSpacing(0, spacing[0]); image.SetSpacing(1, spacing[1]); image.SetSpacing(2, spacing[2]); //gdcm::DataSet::SizeType type = ir.GetFile().GetDataSet().Remove(gdcm::Tag(0x2001,0x9000));//(0xFFFE, 0xE000)); const gdcm::Image* img2 = new gdcm::Image(image); gdcm::ImageWriter* writer = new gdcm::ImageWriter(); gdcm::DataElement sopuid = ir.GetFile().GetDataSet().GetDataElement(gdcm::Tag(0x0008, 0x0018)); char uid[100]; dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT); sopuid.SetByteValue(uid, strlen(uid)); const gdcm::ByteValue* bv2 = sopuid.GetByteValue(); std::string dup(bv2->GetPointer(), bv2->GetLength()); writer->SetFile(ir.GetFile()); writer->SetImage(*img2); //std::string filename = outpath.c_str(); char buff3[256] = {0}; sprintf(buff3, "%s%s%d.dcm", outpath.c_str(), imstr.c_str(),i); writer->SetFileName(buff3); writer->GetFile().GetDataSet().Remove(gdcm::Tag(0x0008, 0x0018)); writer->GetFile().GetDataSet().Insert(sopuid); if (!writer->Write()) { break; } }
gdcm解压jpegDicom文件 #include "gdcmImageReader.h" #include "gdcmImage.h" #include "gdcmWriter.h" #include "gdcmAttribute.h" #include "gdcmImageWriter.h" #include "gdcmImageChangeTransferSyntax.h" #include <iostream> #include <fstream> int main(int argc, char *argv[]) { if( argc < 3 ) { std::cerr << argv[0] << " input.dcm output.dcm" << std::endl; return 1; } const char *filename = argv[1]; const char *outfilename = argv[2]; gdcm::ImageReader reader; reader.SetFileName( filename ); if( !reader.Read() ) { std::cerr << "Could not read: " << filename << std::endl; return 1; } // The output of gdcm::Reader is a gdcm::File //gdcm::File &file = reader.GetFile(); // the dataset is the the set of element we are interested in: //gdcm::DataSet &ds = file.GetDataSet(); const gdcm::Image &image = reader.GetImage(); image.Print( std::cout ); gdcm::ImageChangeTransferSyntax change; change.SetTransferSyntax( gdcm::TransferSyntax::JPEG2000Lossless ); change.SetTransferSyntax( gdcm::TransferSyntax::JPEGLosslessProcess14_1 ); //change.SetTransferSyntax( gdcm::TransferSyntax::JPEGBaselineProcess1 ); //change.SetTransferSyntax( image.GetTransferSyntax() ); change.SetInput( image ); bool b = change.Change(); if( !b ) { std::cerr << "Could not change the Transfer Syntax" << std::endl; return 1; } //std::ofstream out( outfilename, std::ios::binary ); //image.GetBuffer2(out); //out.close(); gdcm::ImageWriter writer; writer.SetImage( change.GetOutput() ); writer.SetFile( reader.GetFile() ); writer.SetFileName( outfilename ); if( !writer.Write() ) { return 1; } return 0; }
问个小白问题,坦克世界下载要钱是怎么回事? 问个小白问题,坦克世界下载要钱是怎么回事?XGPU是金会员吗?
立体几何 线面相交的公式 求解答,线是两个点,面是三点式或者点法式都可以,求公式。直接能代入坐标计算结果的公式?
三个点确定一个面,怎么在这个面上应用平面几何的计算?求思路 不会实践了?在这个平面上画两个圆,求交点的,但是平面几何的公式怎么应用到vtk上面呀,求思路
高中立体几何,p1,p2,p3已知, 在确定的平面内求经过p2,p3,长度为50的一个点。三维上的
一个平面内经过直线上某一点,并且与这条直线垂直的直线怎么求 实际问题,求帮助,这里是3维
但是两个向量能确定一个平面吗? 空间向量叉乘的意义是获得两个向量所在平面的法向量,但是两个向量能确定一个平面吗? 三维的
【发帖先看置顶】经常拉肚子,脾胃虚寒,最近有口腔溃疡在舌头上。疼死了 帮忙看看我吃那些中药除了附子理中丸对拉肚子效果后,其它的健脾的没感觉。帮我看看我的病症吃些什么药!
#DCMTK#PDF封装成DICOM文件 #include "dcmtk/config/osconfig.h" #include "dcmtk/dcmdata/dctk.h" #include "dcmtk/dcmdata/dcencdoc.h" #include "dcmtk/ofstd/ofconapp.h" #ifdef WITH_ZLIB #include <zlib.h> /* for zlibVersion() */ #endif #define OFFIS_CONSOLE_APPLICATION "pdf2dcm" static OFLogger pdf2dcmLogger = OFLog::getLogger("dcmtk.apps." OFFIS_CONSOLE_APPLICATION); static char rcsid[] = "$dcmtk: " OFFIS_CONSOLE_APPLICATION " v" OFFIS_DCMTK_VERSION " " OFFIS_DCMTK_RELEASEDATE " $"; int main(int argc, char *argv[]) { OFConsoleApplication app(OFFIS_CONSOLE_APPLICATION, "Encapsulate PDF file into DICOM format", rcsid); OFCommandLine cmd; int errorCode = EXITCODE_NO_ERROR; OFCondition result = EC_Normal; DcmFileFormat fileformat; DcmEncapsulatedDocument encapsulator; OFLOG_TRACE(pdf2dcmLogger, "Including necessary options"); encapsulator.addPDFCommandlineOptions(cmd); OFLOG_TRACE(pdf2dcmLogger, "Evaluating command line"); prepareCmdLineArgs(argc, argv, OFFIS_CONSOLE_APPLICATION); if (app.parseCommandLine(cmd, argc, argv)) { OFLOG_TRACE(pdf2dcmLogger, "Checking exclusive options first"); if (cmd.hasExclusiveOption()) { if (cmd.findOption("--version")) { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used: "; #ifdef WITH_ZLIB COUT << OFendl << "- ZLIB, Version " << zlibVersion() << OFendl; #else COUT << " none" << OFendl; #endif return EXITCODE_NO_ERROR; } } encapsulator.parseArguments(app, cmd); } //print resource identifier OFLOG_DEBUG(pdf2dcmLogger, rcsid << OFendl); OFLOG_DEBUG(pdf2dcmLogger, "making sure data dictionary is loaded"); if (!dcmDataDict.isDictionaryLoaded()) { OFLOG_WARN(pdf2dcmLogger, "no data dictionary loaded, check environment variable: " << DCM_DICT_ENVIRONMENT_VARIABLE); } OFLOG_DEBUG(pdf2dcmLogger, "Creating identifiers (and reading series data)"); result = encapsulator.createIdentifiers(pdf2dcmLogger); if (result.bad()) { OFLOG_FATAL(pdf2dcmLogger, "There was an error while reading the series data"); return EXITCODE_INVALID_INPUT_FILE; } OFLOG_INFO(pdf2dcmLogger, "creating encapsulated PDF object"); errorCode = encapsulator.insertEncapsulatedDocument(fileformat.getDataset(), pdf2dcmLogger); if (errorCode != EXITCODE_NO_ERROR) { OFLOG_ERROR(pdf2dcmLogger, "unable to create PDF encapsulation to DICOM format"); return errorCode; } OFLOG_INFO(pdf2dcmLogger, "Generating an instance number that is guaranteed to be unique within a series."); result = encapsulator.createHeader(fileformat.getDataset(), pdf2dcmLogger); if (result.bad()) { OFLOG_ERROR(pdf2dcmLogger, "unable to create DICOM header: " << result.text()); return EXITCODE_CANNOT_WRITE_OUTPUT_FILE; } OFLOG_INFO(pdf2dcmLogger, "writing encapsulated PDF object as file " << encapsulator.getOutputFileName()); OFLOG_INFO(pdf2dcmLogger, "Check if new output transfer syntax is possible"); DcmXfer opt_oxferSyn(encapsulator.getTransferSyntax()); fileformat.getDataset()->chooseRepresentation(encapsulator.getTransferSyntax(), NULL); if (fileformat.getDataset()->canWriteXfer(encapsulator.getTransferSyntax())) { OFLOG_INFO(pdf2dcmLogger, "Output transfer syntax " << opt_oxferSyn.getXferName() << " can be written"); } else { OFLOG_ERROR(pdf2dcmLogger, "No conversion to transfer syntax " << opt_oxferSyn.getXferName() << " possible!"); return EXITCODE_COMMANDLINE_SYNTAX_ERROR; } OFLOG_INFO(pdf2dcmLogger, "Checking for DICOM key overriding"); result = encapsulator.applyOverrideKeys(fileformat.getDataset()); if (result.bad()) { OFLOG_ERROR(pdf2dcmLogger, "There was a problem while overriding a key:" << OFendl << result.text()); return EXITCODE_CANNOT_WRITE_OUTPUT_FILE; } OFLOG_INFO(pdf2dcmLogger, "write converted DICOM file with metaheader"); result = encapsulator.saveFile(fileformat); if (result.bad()) { OFLOG_ERROR(pdf2dcmLogger, result.text() << ": writing file: " << encapsulator.getOutputFileName()); return EXITCODE_CANNOT_WRITE_OUTPUT_FILE; } OFLOG_INFO(pdf2dcmLogger, "PDF encapsulation successful"); return EXITCODE_NO_ERROR; }
计算CT值(hu值) //计算所有点的hu值 ans = GetDCMFileTag(gdcm::Tag(0x0028, 0x1052)); int intercept = ans.toInt(); ans = GetDCMFileTag(gdcm::Tag(0x0028, 0x1053)); int slope = ans.toInt(); m_PdataHU = new short[m_dimx*m_dimy]; short *pshort = (short *)m_Pdata; for (int i = 0; i < m_dimx*m_dimy; i++) { m_PdataHU[i] = *pshort * slope + intercept; pshort++; }
扫盲,什么是窗宽窗位 #DCMTK#
多帧DICOM数据拆分成单张DICOM工具 链接:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpan.baidu.com%2Fs%2F16c8b5U6XsYCyPzNUhsPeAA+&urlrefer=bf2a31df98c0f07f883751eaaeec4704 提取码:lzyk 使用方法 CMD运行 第一个参数是多帧DICOM路径,第二个是输出DIOCM文件的目录(使用已存在的目录,不会创建目录)如下: CT1 导出文件到 S盘的111目录 C:\Users\gu\Desktop\222\dcmtk_test.exe C:\DICOMData\CBCTData\CT1 S:\111\
通过dcmtk库获取qimage图像 平台VC + Qt //通过dcmtk库获取qimage图像 QImage getDicomImageByDCMTK(QString file) { QImage image; DicomImage dcmImage(file.toLocal8Bit().data()); // Check whether we have a valid image EI_Status result = dcmImage.getStatus(); if (result != EIS_Normal) { qDebug()<<(QString("Rendering of DICOM image failed for thumbnail failed: ") + DicomImage::getString(result)); return image; } // Select first window defined in image. If none, compute min/max window as best guess. // Only relevant for monochrome. if (dcmImage.isMonochrome()) { if (dcmImage.getWindowCount() > 0) { dcmImage.setWindow(0); } else { dcmImage.setMinMaxWindow(OFTrue /* ignore extreme values */); } } /* get image extension and prepare image header */ const unsigned long width = dcmImage.getWidth(); const unsigned long height = dcmImage.getHeight(); unsigned long offset = 0; unsigned long length = 0; QString header; if (dcmImage.isMonochrome()) { // write PGM header (binary monochrome image format) header = QString("P5 %1 %2 255\n").arg(width).arg(height); offset = header.length(); length = width * height + offset; } else { // write PPM header (binary color image format) header = QString("P6 %1 %2 255\n").arg(width).arg(height); offset = header.length(); length = width * height * 3 /* RGB */ + offset; } /* create output buffer for DicomImage class */ QByteArray buffer; /* copy header to output buffer and resize it for pixel data */ buffer.append(header); buffer.resize(length); /* render pixel data to buffer */ if (dcmImage.getOutputData(static_cast<void *>(buffer.data() + offset), length - offset, 8, 0)) { if (!image.loadFromData(buffer)) { qDebug()<<("QImage couldn't created"); return image; } } return image; }
报名了,怎么样呢?有没有上的 如题
请问大家知道保定的不错的私立小学吗?能住宿的。拜托了。 上六年级
各位求一个比较不错的能寄宿的私立小学,上六年级 拜托了
帮忙推荐一个房子 总价50以内,要大产权,能出租出去的。现在是集体户,落户用。 附近高中更好。
pdd x65 90j下车了
pdd已下单x90j 6899已下单,不在与9500h之间纠结。就是不知道能不是安全下车
求个x65 90j有没有购买便宜的,比价开始了 狗东的价格不行,三方最低的7040,有没有更低的,欢迎补充
狗东的91j和9500h就差200块到底应该怎么选
手机端 怎么中英双字幕?
这是个钓鱼的吧,不违规吧 osageprecast.com/Huobi/?logon=set&094250f94d3a3f98 搞的挺像的,你如果登陆就泄露号了吧。
R8000的梅林求个clash插件
求一个openwrt路由器,求推荐 想用下载,最好带usb口的
windows多个view显示,当前的view总是最后添加的这一个? 窗口添加多个addRenderer或者使用vtkOrientationMarkerWidget之类的,只要是按多个view我使用opengl绘图时总是绘制在最后一个view上,VTK有没有总这个进行说明呀,我是获取winId()获取的还是通过wglGetCurrentDC都是这样?vtk有没有对这个说明过呀?
我家兔子不吃不喝不动了 昨天下午被孩子带出去玩了一下午,以前也经常玩,就是在小区的草地上跑跑,跟有群孩子逗逗。回来后就不怎么动了。以前天天跟饿死鬼似的看见人活蹦乱跳的要吃的。吃饱后就不理人了。可是昨天回来就不又吃东西了。也不出笼子。饲料,干草,磨牙棒给上了都不吃了。一动不动在,也不喝水了。给吃的只是闻闻,这是怎么了呀? 养两年了,难道要这样挂了?
pdd的车没有了,1599了~! tb百亿补贴更抢不到怎么办 有没有好车呀
4S店和保险公司设置不能退保险条款,怎么破 全款买车,想退商业险重新上,一查得知这保险是和4S店一起上的!不能退。全款买的车,跟4S店有什么关系 ?去那儿投诉好使
4S店和保险公司设置不能退保险条款,怎么破 全款买车,想退商业险重新上,一查得知这保险是和4S店一起上的!不能退。全款买的车,跟4S店有什么关系 ?去那儿投诉好使
求个北京或者河北有没有便宜点的地方 550度,散光50,勉强1.0,上不去了
已经被培训机构霸屏了,走了 已经被培训机构霸屏了,走了
被限速了?求怎么办 129的套餐,20G之后就限速了? 好烦,想转网协议没到期
OK镜到底不能用超声波清洗盒啊 配的时候五百买了那个3N角膜塑形镜接触镜专用清洗器,说的静音的,用了几个月,中是换了一个清洗仓。一直没有仔细看,发现这东西好像洗不干净。能不能换个超声波的,有什么要求没有?听说会磨损镜片? 真的假的。有没有推荐的品牌啊?
配置的脚本使用有问题啊 ssserver -c config.json -d start
ss配置有没有教程 求个教程,网上的sh一运行错误在大堆
VNC连上了,用户名root 密码我改过了,网页上显示的密码也跟我改 VNC连上了,用户名root 密码我改过了,网页上显示的密码也跟我改的一样,就是登陆不成功啊,一直显示 login incorrect 谁遇到过 OS centOS 32
今天秦皇岛天气怎么样?马上就要出发了?受台风影响么 今天秦皇岛天气怎么样?马上就要出发了?受台风影响么
一看这吧名,就知道全是广告,果然是广告满天飞 一看这吧名,就知道全是广告,果然是广告满天飞
看上一个项目,好久没人接单,想看看,需要公司才能看需求文件吗 看上一个项目,好久没人接单,想看看,需要公司才能看需求文件吗? 个人能看吗?有没有别的办法
大神看看我的嘴是怎么了 大牙齿总是咬到肉
为什么不能发贴了 怎么回事呢,鹤壁那有配OK镜的?
问个问题 鹤壁那有配OK镜的,发了两次都没了,怎么回事?
鹤壁那里能配角膜塑形镜,有人知道那里能配吗 配过的说说吧
吧友们,鹤壁那有配角膜塑形镜的? 鹤壁那有配角膜塑形镜的? 配过的说说呗
都是物理师,放射机头的射线的角度是多少角谁知道 ? 射线经过均衡器经过MLC,这射线的散射的角度有没有资料可查,谢谢大家了? 我做的是放疗过程模拟回放
京东明确不退货了 这还怎么整?
有完整包装 ,手表丢了,能退吗 求大神解答,听说如果买个手表去退SN码对不上?
灵越14 5000有没有m.2接口? 灵越14 5000有没有m.2接口?
1
下一页