cornerstone源码:
cornerstone/src/reset.js
cornerstone/src/internal/getDefaultViewport.js
cornerstone/src/getDefaultViewportForImage.js
cornerstone/src/displayImage.js

问题:重新加载 element 承载的图像时可能直接加载出来图像大小/位置就不对,或采用 cornerstone.reset(element); 重置视图时大小、位置会发生偏差。

正常加载图像

注册 element

const element = document.getElementById('dicomimage');
cornerstone.enable(element);
this.img_show_element = element;
this.img_show_element.tabIndex = 0;
this.img_show_element.focus();
imageId = ...
cornerstone.loadImage(imageId).then(function(image) {
	that.imageHeight = image.height;
    that.imageWidth = image.width;
	// 若需要对图像进行处理
	imgData = ...
	function loadPixelData () {
      	return imgData;
    // 这些参数都是需要调试的
	var modified_image = {
	    imageId: imgIdItem, // XXX: 注意这个imageId很重要,没有的话注册的组件所对应的element的imageId只能为undefined
	    minPixelValue : 0,
	    maxPixelValue : 255,
	    slope: 1.0,
	    intercept: 0,
	    windowCenter : 127,
	    windowWidth : 256,
	    getPixelData: loadPixelData,
	    rows: that.imageHeight,
	    columns: that.imageWidth,
	    height: that.imageHeight,
	    width: that.imageWidth,
	    color: true,
	    rgba: true,
	    columnPixelSpacing: .8984375,
	    rowPixelSpacing: .8984375,
	    sizeInBytes: that.imageWidth * that.imageHeight * 4
    var viewport = cornerstone.getDefaultViewportForImage(that.img_show_element, image);
    cornerstone.displayImage(that.img_show_element, modified_image, viewport);
    // 若不进行处理直接加载image即可(把上面的modified_image换成image)
});

方法1【无效】:直接修改columnPixelSpacing、rowPixelSpacing

that.img_show_element = ... modified_image = ... const cornerstone_canvas = that.img_show_element that.cornerstone_show_height = cornerstone_canvas.offsetHeight//getAttribute('height') that.cornerstone_show_width = cornerstone_canvas.offsetWidth//getAttribute('width') if(modified_image.width / modified_image.height >= that.cornerstone_show_width / that.cornerstone_show_height){ modified_image.columnPixelSpacing = modified_image.rowPixelSpacing = that.cornerstone_show_width / modified_image.width; }else{ modified_image.columnPixelSpacing = modified_image.rowPixelSpacing = that.cornerstone_show_height / modified_image.height; let viewPortOpion = cornerstone.getViewport(that.img_show_element) viewPortOpion.scale = modified_image.columnPixelSpacing; viewPortOpion.displayedArea.tlhc.x = 1; viewPortOpion.displayedArea.tlhc.y = 1; viewPortOpion.displayedArea.brhc.x = modified_image.width; viewPortOpion.displayedArea.brhc.y = modified_image.height; // TODO:该项设置后仍然不好使,那不知道displayedArea.rowPixelSpacing是干啥的 viewPortOpion.displayedArea.rowPixelSpacing = modified_image.rowPixelSpacing; viewPortOpion.displayedArea.columnPixelSpacing = modified_image.columnPixelSpacing; cornerstone.setViewport(that.img_show_element, viewPortOpion); cornerstone.displayImage(that.img_show_element, modified_image, viewPortOpion);

方法2【无效】:生成新的viewport

that.img_show_element = ...
modified_image = ...
var viewport = cornerstone.getDefaultViewportForImage(that.img_show_element, modified_image);
cornerstone.displayImage(that.img_show_element, modified_image, that.viewport);

方法3【有效】:还是采用加载图像的老办法用loadimage重新加载一遍

也就是虽然原有的that.img_show_element也包含canvas,但是不要想着用已有的canvas
可以通过cornerstone.getEnabledElement查看一下:

console.log('loadImageData.this.img_show_element', cornerstone.getEnabledElement(that.img_show_element))
var enableElement = cornerstone.getEnabledElement(that.img_show_element);
// 这实际上就应该是开头说的cornerstone.reset()的调用效果,具体可以看一开始给出的源代码链接。调了很多次都不对,不过可能是能调出来的
var reset_viewport = cornerstone.getDefaultViewportForImage(that.img_show_element, enableElement.image);
console.log('loadImageData->reset_viewport', reset_viewport);
                    【前端】【cornerstone】【未完善】cornerstone重新加载图像尝试——拒绝花里胡哨问题正常加载图像尝试方法方法1【无效】:直接修改columnPixelSpacing、rowPixelSpacing方法2【无效】:生成新的viewport方法3【有效】:还是采用加载图像的老办法用loadimage重新加载一遍cornerstone源码:cornerstone/src/reset.jscornerstone/src/internal/getDefaultViewport.jscorn
				
基石测试图像加载器 这个存储库包含一个基石图像加载器,它在客户端生成测试图像。 这对于支持开发活动和示例非常有用,因为不需要服务器。 警告:此图像加载器 base64 对像素数据进行编码,因此基石无需服务器即可查看图像(用于开发和示例用例)。 Base64 编码像素数据的更好选择是通过 HTTP 服务器提供 DICOM P10 并使用加载它 在查看此存储库的示例 图像加载器 产生 MRI 头部图像: 示例://1 - MRI 头部图像 #1(冠状) 示例://2 - MRI 头部图像 #2(冠状) 产生CT胸部图像: ctexample://1 - CT 胸部图像 生成一个 256x256 的图像,并将指定的字符串打印到图像中: string://1 - 生成一个 256x256 的图像,其中呈现字符串“1” string://hello world -
cornerstoneTools提供了三个不同的api分别处理缩放,平移,改变窗宽窗位 cornerstoneTools.WwwcTool 改变窗宽窗位 (工具名:Wwwc) cornerstoneTools.ZoomTool 缩放 (工具名:Zoom) cornerstoneTools.PanTool 平移 (工具名: Pan) 用法和标注工具的用法一样 同时cornerstoneTools还提供了读取缩放比,    Android-Universal-Image-Loader是个图片缓存,异步加载,防止内存泄露的好东西 ,用起来非常的方便,于是跑到官网下载了,点击打开链接,当时完全是按照官方的Demo来搭建的,但是始终程序运行不起来,会报以下错误: java.lang.RuntimeException: ImageLoader must be init with configurati
cvLoadImage函数: 在程序中这个函数使用一次两次感觉不来,但在处理序列图像循环调用这个函数时,内存泄露的可能让你目瞪口呆,一般处理100帧,程序内存泄露飙到800M,就挂掉了。 即使你在loadimage之后,每次用cvReleaseImage施放掉,也无济于事。 在 网上查到了可行的方法,验证过,可以使用,非常感谢网友的分享精神。(在vs2008,opencv2.1中验证
之所以前段时间去了解DICOMweb,也是因为偶然机会,先是接触到了Cornerstone,然后从CornerStone发现了OHIF Viewer。学习OHIF Viewer时,发现OHIF Viewer后台首选DICOMweb 接口,从第三方PACS服务器查询和获取影像。 可能不是所有同学都已经了解OHIF Viewer,这里简单梳理从Cornerstone到OHIF Viewer的脉络体系...
最近cornerstone 查看不了log 了,查了下说是需要清除缓存 查了个方法第一步执行这个命令 defaults delete com.zennaware.Cornerstone HistoryCacheUsage 报了not found 好叭,第一步就看起来是失败了 百度查到的: https://cloud.tencent.com/developer/article/1200662?ivk_sa=1024320u 但是在输入链接里的代码还是报了not found 然后在电脑里全局搜索了corners
在windows下用Tortoisesvn。可惜Tortoisesvn没有Mac版,只能上知乎寻找适合于 Mac的SVN软件。 找到了一款名为Cornerstone的软件。在App Store中搜索之后吓个半死,¥448 还好在天朝,破解版一大堆。【Cornerstone3免费破解版】 一定要注意看下载页面的灰色备注。 以防万一,记录如下: 下载完直接打开是不行的。
### 回答1: Cornerstone 4.2是一款广泛使用的工程管理软件。它提供了一个直观且易于使用的界面,用于帮助用户管理各种类型的工程项目。这个版本引入了一些新的功能和改进,以进一步提高项目管理的效率和准确性。 首先,Cornerstone 4.2引入了新的协作工具,使团队成员能够更容易地共享和访问项目信息。用户可以创建团队并邀请成员加入,他们可以在一个共享的工作空间中共享文件、任务和进展情况。这促进了协作和沟通,并帮助团队成员更好地跟踪项目的进展。 其次,这个版本还提供了更强大的报告功能。用户可以根据项目进展和任务完成情况生成详细的报告。这些报告可以帮助用户监控项目的进度和绩效,并及时采取必要的措施。报告的可视化和图表化呈现使用户能够更清晰地了解项目的状态和趋势。 此外,Cornerstone 4.2还提供了更多的定制选项。用户可以根据自己的需求和偏好来设置不同的工程项目。他们可以定义自己的任务列表、标签和优先级,并设置提醒和通知以确保不会错过重要的事项。 总体而言,Cornerstone 4.2是一款功能强大且易于使用的工程管理软件。它的新功能和改进有助于提高团队协作和项目管理的效率,同时提供了更多的定制选项来满足用户的需求。无论是大型企业还是个人用户,都可以从Cornerstone 4.2中受益并更好地管理他们的工程项目。 ### 回答2: Cornerstone 4.2是一种专业的版本控制和团队协作工具。它具有许多强大的功能和优势,可以帮助团队有效地管理项目和代码。 首先,Cornerstone 4.2提供了一个直观而强大的用户界面,可以方便地查看和比较代码的更改。通过直观的图形界面,团队成员可以轻松地了解代码库中的变化,从而更好地协调合作。 其次,Cornerstone 4.2支持多种版本控制系统,包括Subversion(SVN)和Git。这意味着团队可以根据自己的需求选择适合项目的版本控制系统,并且无需在不同的工具之间切换或学习新的技能。 此外,Cornerstone 4.2提供了一些高级功能,如分支和合并。团队成员可以创建各自的分支,在不影响主要代码库的情况下进行开发和实验。然后,他们可以通过合并操作将更改集成到主代码库中,确保项目的稳定性和一致性。 Cornerstone 4.2还具有强大的搜索和过滤功能,使团队成员能够轻松地找到所需的代码和文件。这为开发人员提供了高效的工作环境,并节省了他们的时间和精力。 总的来说,Cornerstone 4.2是一款功能强大且易于使用的版本控制和团队协作工具。它提供了直观的用户界面,支持多种版本控制系统,提供了高级功能和强大的搜索和过滤功能。无论是小型团队还是大型开发项目,使用Cornerstone 4.2都可以提高团队的效率和代码质量。
【论文速读】【未完成】【金融】Deep learning with long short-term memory networks for financial market predictions qq_41900653: scihub 【Java小实验】【Java并发】使用线程池按行并发取二维数组最大值 m0_48165376: 看起来我问的太简单了,都不值得记录一下表情包 【TODO】2023年秋招笔试未竞 同饮春秋: 请问一下答案是多少来着