目标检测labelImg图像标注工具
安装:pip install labelimg
启动:在cmd命令行中输入 labelimg
“Create RectBox”进行框选,输入标签名称。目前labelimg支持PascalVOC、YOLO、CreateML三种标注格式。
“Open Dir”打开目录。
“Change Save Dir”修改保存目录。
“Auto Save mode”自动保存。
安装:pip install labelimg
启动:在cmd命令行中输入 labelimg
“Create RectBox”进行框选,输入标签名称。目前labelimg支持PascalVOC、YOLO、CreateML三种标注格式。
“Open Dir”打开目录。
“Change Save Dir”修改保存目录。
“Auto Save mode”自动保存。
一、演示
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
us
1、创建一个ASP.NET Web项目。选中Web API。
2、创建一个控制器 BillController
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.W
import cv2
import numpy as np
# 读取图像
img = cv2.imread(‘pic/qipan.jpg’)
# 转化为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测角点必须保证图像为浮点数据类型
gray = np.float32(gray)
# gray:输入的浮点灰度图
# 2: 检测中考虑的领域大小
# 3:sobel求导中使用的窗口大小
# 0.
import cv2
import matplotlib.pyplot as plt
# 画图文字使用黑体字显示(显示中文,默认不支持中文)
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
img = cv2.imread(‘pic/st.png’)
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
# 采用二值化方式处理图像,像素值在182-255之间为1,小于182像素值的
import cv2
import matplotlib.pyplot as plt
# 画图文字使用黑体字显示(显示中文,默认不支持中文)
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
# 读取图片
img = cv2.imread(‘demo.png’)
# 转换通道
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 使用Canny算法,滞后阈值分别设定为200,300
import numpy as np
import cv2
import matplotlib.pylab as plt
import matplotlib as mpl
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
# 指定默认字体为黑体
mpl.rcParams[‘axes.unicode_minus’] = False
# 正常显示负号
# 原图
img = cv2.imread(“lena.jpeg”)
import cv2
import numpy as np
import matplotlib.pylab as plt
import matplotlib as mpl
# 绘制线
# 生成一个空的黑底图像
# np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型。
# 512,512是像素(第一个512 像素 高,第二个512 像素 宽),3指BGR三种颜色。
img = np.zeros((512, 512, 3), np.uin
filter2D (src, dst, ddepth, kernel)
src 应用过滤器的源图像。
dst 应用过滤器后输出图像的名称。
ddepth 输出图像的深度 [-1 将给出与输入图像相同的输出图像深度]。
kernel 我们希望图像与之卷积的二维矩阵。
import cv2
import numpy as np
import matplotlib.pylab as plt
import matplotlib as mpl
# 读取图像
i
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。
通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
对应均值滤波和方框滤波来说,其邻域内每个像素的权重是相等的。而在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各
中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。
中值滤波的方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成上升(或下降)的为二维数据序列。
中值滤波会选取数字图像或数字序列中像素点及其周围临近像素点(一共有奇数个像素点)的像素值,将这些像素值排序,然后将位于中间位置的像素值作为当前像素点的像素值,让周围的像素值接近真实值,从而消除孤立的噪声点。
在该序列中,处于中心位置(也叫中心点或中值点)的值是“
均值滤波是典型的线性滤波算法,是指用当前像素点周围nxn个像素值的均值来代替当前像素值。使用该方法遍历处理图像内的每一个像素点,可完成整幅图像的均值滤波。
对第5行第5列的像素点进行均值滤波时,首先需要考虑需要对周围多少个像素点去取平均值。通常情况下,我们会以该当前像素为中心,对行数和列数相等的一块区域内的所有像素点的像素取平均值。
针对第 5 行第 5 列像素点均值滤波的运算示意图。
针对每一个像素点,都是与一个内部值均为1/25的55矩阵相乘,得到均值滤波的计算结果。
torch.nn.Conv2d(in_channels,
out_channels,
kernel_size,
stride=1,
padding=0,
dilation=1,
groups=1,
bias=True,
padding_mode=’zeros’,
device=None,
dtype=None)
in_channels (int) – 输入图像中的通道数
out_channels (int) – 卷积产生的通道数即输出图片的通道数
sklearn模型的保存和加载api
import joblib
保存:joblib.dump(estimator, ‘test.pkl’)
加载:model= joblib.load(‘test.pkl’)
from sklearn.linear_model import LinearRegression
import numpy as np
import joblib
# 创建并拟合模型
x = [[6], [8], [10], [15], [18]]
y
view函数主要用于Tensor维度的重构,即返回一个有相同数据但不同维度的Tensor。
import torch
data = [[1,2,3], [4,5,6], [7,8,9]] # data的类型为list,非tensor
data = torch.tensor(data) # 将data由list类型转为tensor类型
print(data) # torch.Size([6])
#print(data.view(data.size(0), -1))
prin
from torch.utils.data import TensorDataset
import torch
from torch.utils.data import DataLoader
a_data = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7,
1. torch.unsqueeze 详解
# torch.unsqueeze(input, dim, out=None)
# 作用:扩展维度
# 返回一个新的张量,对输入的既定位置插入维度 1
# 注意:返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。
# 参数:
# tensor (Tensor) – 输入张量
# dim (int) – 插入维度的索引
# out (Tensor, optional) – 结果张量
import torc
import numpy as np
import torch
a = torch.tensor([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(‘a.shape’, a.shape)
print(‘a’, a)
# 列 最大
# 返回的值包含两个数据(values, indices) 分别代表最大值的值和所在的索引(返回最大元素在各列的行索引)
a0 = torch.max(a.data, 0)
print(‘a0’, a0)
numpy提供了numpy.squeeze(a, axis=None)函数,从数组的形状中删除单维条目。
其中a表示输入的数组。axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错。
axis的取值可为None 或 int 或 tuple of ints,若axis为空时则删除所有单维度的条目。
import numpy as np
a = np.array([[[0], [1], [2]]])
b = np.squeeze(a)
c = np.squ
import torch
x = torch.randn(9, 3)
# 输入的维度是(9,3)
m = torch.nn.Linear(3, 1)
# 输入的特征维度是3,输出的特征维度是1
output = m(x)
print(‘m.weight.shape:\n’, m.weight.shape)
print(‘m.bias.shape:\n’, m.bias.shape)
print(‘output.shape:\n’, output.shape)