0%

MVVM

讲到MVVM,就要提到MVC,这里也对MTV进行总结,一起了解这三种框架结构原理

MVC

要素 功能
M(Model) 数据模型,用来处理数据库数据事务
V(View) 视图,基于Model返回的数据进行处理,后面将视图传给浏览器
C(Contorller) 控制器,用于Model和View之间进行数据逻辑处理等等操作

MVC的通信是单向的,主要流程是V->C->M->C->V

阅读全文 »

HOG+SVM实现病理细胞检测

1 数据分析与处理

这里获取到的数据有两部分,一部分是带标注xml的正样本,一部分是不带xml的负样本,这里感觉负样本和正样本差别有点大,后面处理需要注意一下

这里处理数据主要有两个部分,一个部分是获取用于训练的正样本,需要通过xml从大图中提取出来,另一部分是用于训练的负样本,因为没有提供xml文件,需要我们自己分割出来用于训练,我这里采用随机分割的方法,选取一部分负样本,每张图片随机分割出来一部分图片用于训练

分割正样本代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

from skimage.feature import hog
from sklearn.externals import joblib
import xml.dom.minidom as xdm
import numpy as np
from PIL import Image
import cv2
import os
import time
from config import *


train_xml_filePath = './sig-pos/sig-train-pos-xml/'
# xml path
train_pos_restPath = './sig-pos/sig-train-pos-rest/'
# save path


def getBox(object):
groupId = str(object.getElementsByTagName("name")[0].firstChild.data) # 细胞类别
bndbox = object.getElementsByTagName("bndbox")[0]
xmin = int(bndbox.childNodes[1].firstChild.data)
ymin = int(bndbox.childNodes[3].firstChild.data)
xmax = int(bndbox.childNodes[5].firstChild.data)
ymax = int(bndbox.childNodes[7].firstChild.data)
box = (xmin,ymin,xmax,ymax)
return box

def save_image_pos(filePath):
Data = []
num = 0
for childDir in os.listdir(filePath):
f_im = os.path.join(filePath, childDir)
f_xml = os.path.join(train_xml_filePath, '%s.xml' %childDir.split('.')[0])
dom = xdm.parse(f_xml)
root = dom.documentElement
objects = root.getElementsByTagName("object")
image = Image.open(f_im) # open the image
for object in objects:
box = getBox(object)
region = image.crop(box) # 分割图片
data = np.asarray(region) # 数据转换
data = cv2.resize(data,save_image_size,interpolation=cv2.INTER_CUBIC) # 插值方法
save_name = os.path.join(train_pos_restPath,"%s.jpg" %str(num))
cv2.imwrite(save_name,data)
num += 1
print("%d processing: %s" %(num,childDir))

if __name__ == "__main__":
save_image_pos("./sig-pos/sig-train-pos")
# 正样本提取了大概4500张左右(100,100)尺寸的患病细胞图片
阅读全文 »

基础使用

一、基本命令

  • docker search [镜像名字] //搜索镜像
  • docker pull [镜像名字] //拉取镜像
  • docker images //查看安装的镜像
  • docker rmi [id] //删除安装的镜像 docker rm [id] //删除容器
  • docker ps // 查看现在运行的容器 docker ps -a //查看所有的容器
  • docker ps -p //查看正在运行的容器的id

二、docker运行命令

1
docker run -it [镜像名字] /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端,可以使用-it实现直接进入容器,运行exit会直接停止容器
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令
  • 使用exit退出终端
1
docker run --name [容器别名] -itd [镜像名字] /bin/bash

参数说明:

  • —name 会给容器一个别名,便于操作
  • -itd -d参数不会进入容器,会后台运行
  • 可以使用`docker exec -it [镜像id] /bin/bash进入镜像终端

```

  • docker start //启动容器
  • docker stop //停止容器
  • docker restart //重新启动容器

进阶

后面补充

三毛

一个人至少拥有一个梦想,有一个理由去坚强。心若没有栖息的地方,到哪里都是在流浪。

— 三毛

一、网易云链接

这个可以先进网易云找到想要播放的歌曲,然后可以选择生成外链的,如下:

1
2
3
4
5
6
<iframe 
frameborder="no" border="0"
marginwidth="0" marginheight="0"
width=530 height=310
src="//music.163.com/outchain/player?type=0&id=2205641361&auto=0&height=430">
</iframe>

二、Aplayer

hexo已经提供了hexo-tag-aplayer插件来使用标签在Markdown中使用,先安装插件

1
npm install hexo-tag-aplayer --save

阅读全文 »

三毛

一个人至少拥有一个梦想,有一个理由去坚强。心若没有栖息的地方,到哪里都是在流浪。

— 三毛

一、文章编写优化


1、题头图片

  • 基础方法(无法定义大小)
    ![备注](url)
  • 修改图片方法
    <img src="" width=800 height=800 aligin=right >
阅读全文 »