数字旗手

电气化、自动化、数字化、智能化、智慧化

0%

简介 本文是对ImagePy的矢量图形绘制工具进行深度解析。 矢量图形相对于位图来说,有其特有的操作,比如两个矢量进行求交集、求并集、求差等。 阅读本文之前,可以先参考之前的这篇文章,以对ImagePy的矢量图形有初步了解。 功能函数 将矢量图形转化为点集 该函数的作用是将矢量图形转换为点集,这里的点作为锚点,可以供后续编辑。 比如对于矩形这一矢量,在shp中定义了它的起始点和长宽,通过该函数,可以将该矩形转为9个点的点集,即将该矩形分成田字格。 (具体到语法上,使用了numpy的mgrid函数,其中的步长设为了复数的形式,具体可以参考这里) 1 2 3 4 5 6 7 8 9 10 11
Read more »

问题描述 给定一个多边形区域,怎样判断某个点是否在该区域内? 如下图所示的蓝色多边形框,判断某点是否在该框内。 定义域 先写出该蓝色框的坐标序列: 1 2 3 4 import numpy as np import matplotlib.pyplot as plt poly = np.array([(0,0),(1,0),(0.7,0.7),(1,1),(0,1),(0.5,0.5),(0,0)]) 注意,该坐标序列是首尾相接的。 然后,定义出任意数量、任意位置的随机点: 1 pts = np.random.rand(80).reshape((40,2)) 这里给出了
Read more »

问题描述 图像中有一条线,如何判断这条线的转折点? 比如下面一张图: 目的是找到图中的三个转折点。 解法 找到轮廓线 1 2 3 img = cv2.imread('test.png', 0) conts = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0][0] xs, ys = conts[:,:,0], conts[:,:,1] 这一步实际作用是通过寻找轮廓线,从像素类型的位图中提取有意义的这条线的坐标序列,即矢量序列。 同时将横坐标和纵坐标分别提取出来。 高斯模糊 1 2 gxs =
Read more »

简介 本文介绍ImagePy中的智能画笔工具,它能够很方便地对图像进行像素级标注,尤其是在复杂图像上进行多种类别的标注时,用好这个智能画笔,能使效率飞升。 先来一连串的功能介绍镇楼: (1)鼠标左键 左键:具有联想功能的局部标注 Ctrl+左键单击:吸取颜色 Ctrl+左键:普通画笔 Shift+左键:落笔选定保护色,在矩形框内闭合且非保护色区域被填充 Alt+左键:落笔选定保护色,在矩形框内对该色进行描边 Ctrl+Alt+左键:落笔选定保护色,对任意的非保护色的区域进行标注 (2)鼠标右键 右键:全局填充 Shift+右键:落笔所在的保护色的内部闭合区域被填充 Ctrl+右键:落笔所在的
Read more »

简介 该博客是基于hexo搭建的,部署在github pages里,用netlify加速。之前一直用自己的笔记本写博客,现在需要换用另一台电脑,因此需要在新电脑上将环境重新搭建一遍,顺便对hexo及其next主题进行升级。 安装Node.js 下载地址见这里。 然后正常安装。 安装完成后,输入node -v和npm -v,如果出现版本号,那么就安装成功了。 安装git 下载地址见这里。 然后正常安装,只不过最后一步添加路径时选择Use Git from the Windows Command Prompt,这样我们就可以直接在命令提示符里打开git了。 安装完成后在命令提示符中输入git
Read more »

简介 本文的目的是介绍霄龙新开发的用于cellpose后处理加速的算法。 前面已写了两篇文章介绍了cellpose,它是一个非常强大的用于胞状物体分割的算法,具体见: 胞状物体通用分割算法Cellpose解析:使用篇 胞状物体通用分割算法Cellpose解析:开发篇 总体而言,cellpose由两部分组成:第一部分是Unet网络,建立了原图与其流场图flow之间的关系;第二部分是将上一步流场图复原为掩膜mask,即转换为最终的分割结果。 第一部分主要是神经网络的训练和推理,可以跑在CPU或GPU上(当然GPU会更快);第二部分只能由CPU计算。两者的计算用时见cellpose作者的实测结果:
Read more »

概览 赛事描述 Kaggle上正在进行一项名为“HuBMAP: Hacking the Kidney”的竞赛,链接见这里,总奖金是6万美金,该竞赛的目的是为了检测人体组织中的functional tissue units (FTUs)。FTU的定义是:three-dimensional block of cells centered around a capillary, such that each cell in this block is within diffusion distance from any other cell in the same block,感觉类似于细胞的概念,
Read more »

本文是对极客时间app上王争老师的<数据结构与算法之美>的课堂笔记。 基础概念 算法与数据结构是编程的内功。 从广义上讲,数据结构就是指一组数据的存储和逻辑结构。算法就是操作数据的一组方法。 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。(比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。) 数据结构与算法中最重要的概念——复杂度分析:数据结构和算法解决的是如何更省、更
Read more »

sknw是一个从骨架图中创建图网络的库,代码在这里。 它不仅可以实现将单线转变成图graph的效果,而且里面的trace函数还可以实现像素追踪,将图像中的单线的坐标序列依次提取出来,从而将图像转变为矢量图。(sknw可以对闭合曲线进行坐标提取,对于闭合曲线,也可以使用find_contour来提取这些坐标序列) 输入图像 输入图像必须是一个二值的骨架图。 比如,这里的示例图像矩阵为: 1 2 3 4 5 6 7 8 9 10 img = np.array([ [0,0,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0], [0,0,0,1,
Read more »

Cellpose是一个对于胞状物体(比如细胞、晶粒、核、砖块等)进行分割的非常优秀的通用算法,其体现了深度学习在分割这类物体时的强大能力,同时其泛化效果也远超过传统图像处理算法,展现了数据驱动的深度学习所特有的“暴力美学”。 试用 Cellpose的源代码见这里。 同时开发者还搭建了网站来方便用户试用Cellpose: Cellpose快速体验网站:用户可以直接上传自己的图像来直接调用Cellpose,第一时间获得Cellpose的处理效果。 如果用户觉得好,那么可以接着往下深度体验或钻研Cellpose了。 安装 Cellpose的安装有多种方式: Google Colab在线运行 开
Read more »