2020.06-Study_update.3

week 6.15-6.21

-Study-update
-Monssm练习
-TueAjax
-Wesspringboot,annotation
-Thu反射
-Friyaml语法,jsr
--
-SunspringbootWeb,拦截器

6.16 Tuesday

下载jquery-3.5.1.js
配置静态资源过滤

<mvc:default-servlet-handler/>
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/6/15
  Time: 11:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
    <script src="${pageContext.request.contextPath}/static/js/jquery-3.5.1.js"></script>

    <script>
      function a() {
        $.post({
          url:"${pageContext.request.contextPath}/a1",
          data: {"username":$("#username").val()},
          success:function (data) {
              alert(data);
          }

        })
      }
    </script>
  </head>
  <body>
<%--    onblur失去焦点--%>
    <input type="text" id="username" onblur="a()">
  </body>
</html>
package com.maaoooo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author lzr
 * @date 2020/6/15 11:31:21
 * @description
 */
@Controller
public class AjaxController {

    @RequestMapping("/t1")
    public String test(){
        return "hello";
    }

    @RequestMapping("/a1")
    public void a1(String username, HttpServletResponse response) throws IOException {
        System.out.println(username);
        if("xiaoliu".equals(username)){
            response.getWriter().print("xiaoliu");
        }else{
            response.getWriter().print("msg:"+username);
        }
    }
}


学习:
JavaEE :熟悉。OOP思想
mysql:持久化
html+js+jQuery+框架:不熟悉
javaweb:能三层架构开发网站,较为原始
ssm框架:简化开发流程 但是配置较为复杂
war:在tomcat运行
springboot:再次简化,微服务架构 jar:内嵌tomcat
服务越来越多:springcloud

6.17 Wednesday

springboot初始化插件无法下载
用阿里源替换

<pluginRepositories>  
    <pluginRepository>  
            <id>alimaven spring plugin</id>  
            <name>alimaven spring plugin</name>  
            <url>https://maven.aliyun.com/repository/spring-plugin</url>  
    </pluginRepository>  
</pluginRepositories>  

annotation
每 1 个 Annotation" 都与 “1 个 RetentionPolicy” 关联,并且与 “1~n 个 ElementType” 关联。

@Documented //表示它可以出现在java文档中
@Target(ElementType.TYPE) //指定属性 type表示可以修饰类
@Retention(RetentionPolicy.RUNTIME) //策略属性
public @interface MyAnnotation1 { //使用 @interface 定义注解时,意味着它实现了 java.lang.annotation.Annotation 接口,即该注解就是一个Annotation。
定义 Annotation 时,@interface 是必须的。
}

常用的注解

@Deprecated  -- @Deprecated 所标注内容,不再被建议使用。
@Override    -- @Override 只能标注方法,表示该方法覆盖父类中的方法。
@Documented  -- @Documented 所标注内容,可以出现在javadoc中。
@Inherited   -- @Inherited只能被用来标注“Annotation类型”,它所标注的Annotation具有继承性。
@Retention   -- @Retention只能被用来标注“Annotation类型”,而且它被用来指定Annotation的RetentionPolicy属性。
@Target      -- @Target只能被用来标注“Annotation类型”,而且它被用来指定Annotation的ElementType属性。
@SuppressWarnings -- @SuppressWarnings 所标注内容产生的警告,编译器会对这些警告保持静默。

6.18 Thursday

反射是框架设计的灵魂

反射:将类的各个组成部分封装为其他对象。
好处:
可以在程序运行时,操作对象。
可以解耦

获取class
1.源代码阶段:Class.forName() 可以把字节码加载进内存,返回一个class对象
2.class类对象阶段:通过类名获取 类名.class()
3.runtime阶段 对象.getClass()
java的运行方式
1。.java文件 编译成.class
2.把字节码通过类加载器加载进内存,成为class类对象。
3.通过类对象创建真正的java对象。

6.19 Friday

yaml注入值

package com.maaoooo.springbootdemo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author lzr
 * @date 2020 06 19 21:52
 * @description
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private String name;
    private int age;
    private boolean isNice;
    private Map<String,Object> map;
    private List<Object> list;
    private Date brith;
    private Dog dog;

}

user:
  name: xiaoliu
  age: 25
  isNice: true
  map: {k1: v1,k2: v2}
  list:
    -book
    -chair
    -pool
  brith: 1995/8/3
  dog:
    name: dogz
    age: 2

@ConfigurationProperties
将配置文件中配置的每一个属性的值,映射到这个组件中
参数prefix=“person”将配置文件中的person属性一一绑定

6.21 Sunday

拦截器

package com.maaoooo.config;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author lzr
 * @date 2020 06 21 12:25
 * @description
 */
public class MyInterceptor implements HandlerInterceptor {
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //return true 放行
        System.out.println("前");
        return true;
    }
    //日志
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("后");
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("清理");
    }
}

applicationConfig.xml

<!--    配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
<!--            拦截所有请求-->
            <mvc:mapping path="/**"/>
            <bean class="com.maaoooo.config.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
</beans>

SpringBootWev
1.静态资源导入
2.首页
3.thymeleaf
4.装配springmvc
5.增删改查

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个更新包自己在网上找了很久,没有autodesk的帐号无法登陆官网去下载,网上提供下载的基本都要会员或收费,更新包比较大有848mb,所以我放到附件的百度盘中给大家共享!安装这个补丁需要花费很长时间(我自己是等不了睡了一晚起来看安装好了),请你要有充足的耐心,别以为安装时它死机了! Autodesk发布了3ds Max 2020.3更新,更加注重效率、耐力和精度。在最近的2020倒角更新的基础上,这个版本将直接在EditablePoly对象中为用户带来这些增强。新的视口增强处理对Arnold灯光、Arnold Alembic和程序对象的支持。ATF导入器的改进包括对Sketchup和JT格式的增强,以获得更好的视觉和组织精度。 现在支持所有更新版本的SketchUp文件。 -增加了导入JT10.5文件的能力 -改进的JT导入场景层次结构 -能够导入在CATIA V5-6R2019中创建的CATIA V4文件 -带边缘可见性的SketchUp导入器增强功能 -SketchUp导入器增强导入几何体的焊接 视窗增强 节省时间和质量改进现有的视窗。 -现在在视口中支持Arnold灯光 -Arnold Alembic和Procedural现在有了viewport表示 -在活动阴影中时,现在可以更改渲染设置,而无需重新启动活动阴影 倒角和造型改进 从3ds Max 2020到3ds Max 2020.3更新所做的倒角增强允许建模者更有效地工作,并在需要的地方使用工具,无论它们是在修改器中还是在可编辑多边形对象中。 -可编辑多边形助手/对话框中提供了新的倒角斜接类型(径向和面片) -还更新了切角算法,以更好地处理边缘情况,产生更令人满意的整体几何图形,并避免退化,如边缘平坦或倾斜 -变换工具箱现在使用世界单位 Arnold MAXtoA更新 此更新提供了阿诺德5.4.0.1核心、Max ToA插件和阿诺德GPU beta版的几项改进,为艺术家工作流带来了更大的速度、功率和灵活性。MAXtoA 3.2.57“in the box”可能有较新版本,请检查3ds Max Arnold渲染对话框以进行升级 -Expose the clip_geo -Expose shader_override节点以覆盖场景的所有着色器 -Expose aov_read shader -添加了没有背景的选项 -支持法线和高度贴图 -烘焙元素转移 为了使工作流程更加顺畅,还进行了各种额外的更新。
您好,我可以帮您解决这个问题。首先,为了融合多张dcm图像为一张dcm图像,您可以使用Python的pydicom库来操作DICOM文件。以下是一种可能的解决方案: ```python import pydicom import numpy as np # 读取第一张dcm图像作为基准 base_file = "C:/Users/11508/Desktop/568/RI.568.0-3_1_17.dcm" base_dcm = pydicom.dcmread(base_file) # 读取所有dcm图像 file_list = ["C:/Users/11508/Desktop/568/dcm1.dcm", "C:/Users/11508/Desktop/568/dcm2.dcm", ...] # 将所有dcm图像读取为numpy数组,并将像素值存储到一个列表中 pixel_arrays = [] for file in file_list: dcm = pydicom.dcmread(file) pixel_arrays.append(dcm.pixel_array) # 将像素数组堆叠为三维数组,并计算平均值 merged_array = np.stack(pixel_arrays, axis=2) merged_pixel_array = np.mean(merged_array, axis=2, dtype=np.uint16) # 创建一个新的DICOM对象,将基准dcm的属性复制到新对象中 merged_dcm = pydicom.Dataset() merged_dcm.update(base_dcm) # 更新新对象的像素数组和相关属性 merged_dcm.PixelData = merged_pixel_array.tobytes() merged_dcm.Rows, merged_dcm.Columns = merged_pixel_array.shape merged_dcm.NumberOfFrames = 1 merged_dcm.SOPInstanceUID = pydicom.uid.generate_uid() merged_dcm.SeriesInstanceUID = pydicom.uid.generate_uid() merged_dcm.StudyInstanceUID = pydicom.uid.generate_uid() # 保存新的融合后的dcm图像 merged_file = "C:/Users/11508/Desktop/568/merged.dcm" merged_dcm.save_as(merged_file) ``` 请注意,您需要将`"C:/Users/11508/Desktop/568/dcm1.dcm"`替换为您实际的dcm图像路径,并确保安装了pydicom库。此代码将读取每个dcm图像的像素数组,将它们堆叠为三维数组,并计算所有像素的平均值作为融合后的像素数组。然后,它将创建一个新的DICOM对象,将基准dcm的属性复制到新对象中,并更新像素数组和相关属性。最后,新的融合后的dcm图像将保存在指定路径下。 希望这可以帮助到您!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值