计算机视觉
Alphapeople
这个作者很懒,什么都没留下…
展开
-
图像处理资料
《数字图像处理》冈萨雷斯(第四版)读书笔记目录原创 2023-06-12 11:40:57 · 382 阅读 · 0 评论 -
opencv特征
【代码】opencv特征。原创 2023-03-02 16:44:40 · 60 阅读 · 0 评论 -
opencv角点检测
【代码】opencv角点检测。原创 2023-03-02 16:44:10 · 81 阅读 · 0 评论 -
opencv信号放大
【代码】opencv信号放大。原创 2023-03-02 16:42:27 · 79 阅读 · 0 评论 -
opencv模板匹配
【代码】opencv模板匹配。原创 2023-03-02 16:39:52 · 58 阅读 · 0 评论 -
图像融合opencv
【代码】图像融合opencv。原创 2023-03-02 16:38:53 · 122 阅读 · 0 评论 -
图像金字塔opencv提高对比度
【代码】图像金字塔opencv提高对比度。原创 2023-03-02 16:37:39 · 126 阅读 · 0 评论 -
opencv直方图
直方图均衡化增加对比度。原创 2023-03-02 16:34:19 · 57 阅读 · 0 评论 -
直方图反投影提取颜色
【代码】直方图反投影提取颜色。原创 2023-03-02 16:33:02 · 42 阅读 · 0 评论 -
opencv阈值操作
【代码】opencv阈值操作。原创 2023-03-02 16:25:35 · 52 阅读 · 0 评论 -
opencv提取文字或选定区域
【代码】opencv提取文字或选定区域。原创 2023-03-02 16:25:30 · 929 阅读 · 0 评论 -
opencv霍夫变换
阈值表示的是在霍夫空间中找出交点为多少的那个点,这个点就是笛卡尔坐标系中的线。原创 2023-02-15 04:52:41 · 162 阅读 · 1 评论 -
opencv轮廓
open原创 2023-02-15 04:02:35 · 71 阅读 · 0 评论 -
opencv形态学操作
闭操作:县膨胀后腐蚀用于去空洞。开操作:先腐蚀后膨胀用于去噪。原创 2023-02-13 16:14:04 · 222 阅读 · 0 评论 -
根据mask获取外围点坐标
contours, hierarchy = cv2.findContours(mmask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)原创 2021-10-08 15:51:53 · 1507 阅读 · 0 评论 -
opencv角度旋转
def Nrotate(degrees,x,y,cx,cy): angle = degrees/180*3.1415926 nRotatex = (x-cx)*math.cos(angle) - (y-cy)*math.sin(angle) + cx nRotatey = (x-cx)*math.sin(angle) + (y-cy)*math.cos(angle) + cy return nRotatex, nRotatey原创 2021-06-07 16:46:55 · 232 阅读 · 0 评论 -
两种方式构建heatmap
import numpy as npimport cv2"""固定尺寸"""class HeatmapBuilder: def __init__(self, sigma): buffer_size = 100 center = (buffer_size // 2, buffer_size // 2) x_range = [i for i in range(int(buffer_size))] y_range = [i for原创 2021-06-07 15:28:35 · 265 阅读 · 0 评论 -
opencv形状模板匹配
"""形状匹配"""def getpatch(maskimg): locs = np.where(maskimg == 255) x0 = np.min(locs[1]) x1 = np.max(locs[1]) y0 = np.min(locs[0]) y1 = np.max(locs[0]) return maskimg[y0:y1,x0:x1]from pyimagesearch.detect_shapes import getshapede原创 2021-06-05 14:59:29 · 651 阅读 · 1 评论 -
opencv获取凸包
import cv2import numpy as npdef gettubao(imgray): img = np.zeros(shape=imgray.shape) ret, thresh = cv2.threshold(imgray, 127, 255, 0) contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) cnt = contours[.原创 2021-05-26 17:14:30 · 166 阅读 · 0 评论 -
逆向透视变换的带透明通道的贴图数据增强
import numpy as npimport cv2from math import *from PIL import Imageimport randomdef rad(x): return x * np.pi / 180def order_points(pts): # initialzie a list of coordinates that will be ordered # such that the first entry in the list is t.原创 2021-05-26 09:38:57 · 136 阅读 · 0 评论 -
opencv将图片转换为RGBA格式
import cv2import numpy as npimport osfor file in os.listdir('/home/lhq/mb'): img1 = cv2.imread("/home/lhq/mb/{}".format(file)) img = cv2.GaussianBlur(img1,(25,25),15) ret, thresh = cv2.threshold(img, 254, 255, 0) thresh = cv2.cvtColor(.原创 2021-05-26 09:12:52 · 3966 阅读 · 0 评论 -
opencv物体形状相似度对比
import cv2from math import *def rota(img, degree): height, width = img.shape[:2] # 旋转后的尺寸 heightNew = int(width * fabs(sin(radians(degree))) + height * fabs(cos(radians(degree)))) widthNew = int(height * fabs(sin(radians(degree))) + wid.原创 2021-05-25 14:54:47 · 1278 阅读 · 0 评论 -
逆向透视变换贴图数据增强
import numpy as npimport cv2def rad(x): return x * np.pi / 180def order_points(pts): # initialzie a list of coordinates that will be ordered # such that the first entry in the list is the top-left, # the second entry is the top-right, t.原创 2021-05-23 17:19:41 · 279 阅读 · 0 评论 -
逆向透视变换
# -*- coding:utf-8 -*-import cv2import numpy as npimg = cv2.imread("/home/lhq/mb/1.jpg")im = cv2.imread('/home/lhq/xg/0.jpg')cv2.imshow('1',im)warpR = np.array([[1.00522757e+00, -1.32330176e-01, 5.50542697e+02], [8.95517269e-02, 1.原创 2021-05-21 16:16:32 · 297 阅读 · 0 评论 -
求多边形的最小外接矩形
import jsonimport osimport numpy as npimport cv2def func(cnt): rect = cv2.minAreaRect(cnt) # 得到最小外接矩形的(中心(x,y), (宽,高), 旋转角度) box = cv2.boxPoints(rect) # 获取最小外接矩形的4个顶点坐标(ps: cv2.boxPoints(rect) for OpenCV 3.x) box = np.int0(box) return.原创 2021-05-20 20:00:10 · 1708 阅读 · 0 评论 -
BAM的pytorch实现
class ChannelAttention(nn.Module): def __init__(self, channel, reduction=16): super(ChannelAttention, self).__init__() mid_channel = channel // reduction self.avg_pool = nn.AdaptiveAvgPool2d(1) self.shared_MLP = nn.Seq.原创 2021-02-07 11:21:26 · 1100 阅读 · 0 评论 -
一张图理解AP与MAP
原创 2020-11-30 09:50:17 · 1115 阅读 · 0 评论 -
paddleocr的使用
import paddlehub as hub# 加载移动端预训练模型# ocr = hub.Module(name="chinese_ocr_db_crnn_mobile")# 服务端可以加载大模型,效果更好import cv2import osfrom math import *def r(image,degree): height, width = image.shape[:2] # 旋转后的尺寸 heightNew = int(width * fabs(si.原创 2020-11-25 16:44:02 · 2832 阅读 · 1 评论 -
U2NET的pytorch实现
USR模块网络结构开源github地址:https://github.com/NathanUA/U-2-Net自己的实现:import torchfrom torch import nnfrom torchvision import modelsimport torch.nn.functional as Fclass Convalution(nn.Module): def __init__(self,in_ch=3,out_ch=3,dirate=1):原创 2020-11-24 17:26:43 · 1873 阅读 · 0 评论 -
yolov5目标的生成及损失函数
def build_targets(p, targets, model): """ :param p:torch.Size([2, 3, 19, 19, 85])*3 :param targets: [目标数,6] :param model: :return: """ # Build targets for compute_loss(), input targets(image,class,x,y,w,h) det = model.mo.原创 2020-11-24 10:07:36 · 3921 阅读 · 1 评论 -
CSP结构的pytorch实现
class BottleneckCSP(nn.Module): # CSP Bottleneck https://github.com/WongKinYiu/CrossStagePartialNetworks def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5): # ch_in, ch_out, number, shortcut, groups, expansion super(BottleneckCS...原创 2020-11-23 17:51:16 · 5418 阅读 · 0 评论 -
Focus的作用及pytorch实现
用于切片操作,比如4*4*3变成了2*2*12的特征图class Focus(nn.Module): # Focus wh information into c-space def __init__(self, c1, c2, k=1): super(Focus, self).__init__() self.conv = Conv(c1 * 4, c2, k, 1) def forward(self, x): # x(b,c,w,h) -..原创 2020-11-23 17:30:21 · 3633 阅读 · 2 评论 -
ASPP的pytorch实现
from torch import nnimport torchimport torch.nn.functional as Fclass ASPPConv(nn.Sequential): def __init__(self, in_channels, out_channels, dilation): modules = [ nn.Conv2d(in_channels, out_channels, 3, padding=dilation, d...原创 2020-11-23 13:45:19 · 7233 阅读 · 1 评论 -
SPP的pytorch实现
from torch import nnimport torchclass SPP(nn.Module): def __init__(self): super(SPP, self).__init__() self.pool1 = nn.MaxPool2d(kernel_size=5,stride=1,padding=5 // 2) self.pool2 = nn.MaxPool2d(kernel_size=7, stride=1, padd...原创 2020-11-23 11:53:57 · 2925 阅读 · 0 评论 -
mosaic数据增强的pytorch实现
import osimport numpy as npimport cv2import randomimport mathdef random_affine(img, targets=(), degrees=10, translate=.1, scale=.1, shear=10, border=0): # torchvision.transforms.RandomAffine(degrees=(-10, 10), translate=(.1, .1), scale=(.9, 1.1).原创 2020-11-20 18:03:33 · 1933 阅读 · 0 评论 -
CBAM的理解pytorch实现和用法
总述:对于卷积神经网络生成的feature map,CBAM从通道和空间两个维度计算feature map的attention map,然后将attention map与输入的feature map相乘来进行特征的自适应学习。CBAM是一个轻量的通用模块,可以将其融入到各种卷积神经网络中进行端到端的训练。也就是说由于CBMA模块输入和输出的featuremap大小是一致的,因此可用于网络的各层。class ChannelAttentionModule(nn.Module): d原创 2020-11-20 16:28:14 · 4770 阅读 · 0 评论 -
transformer目标检测
import torchfrom torch import nnfrom torchvision.models import resnet50class DETR(nn.Module): def __init__(self,num_classes,hidden_dim,nheads,num_encoder_layers,num_decoder_layers): super().__init__() self.backbone = nn.Sequential(.转载 2020-11-12 11:48:41 · 1689 阅读 · 0 评论 -
opencv透视变换
transform.py:import numpy as npimport cv2def order_points(pts): # initialzie a list of coordinates that will be ordered # such that the first entry in the list is the top-left, # the second entry is the top-right, the third is the #.转载 2020-09-09 15:40:06 · 323 阅读 · 0 评论 -
focal loss
from torch import nnimport torch.nn.functional as Fimport torchclass FocalLoss(nn.Module): def __init__(self, alpha=0.25, gamma=2, logits=False, reduce=True): super(FocalLoss, self).__init__() self.alpha = alpha self.gamma .原创 2020-06-17 13:46:45 · 617 阅读 · 0 评论 -
OpenCV写入视频
NUM = 0 textsize = 50 ft = ImageFont.truetype("arialuni.ttf", textsize) use_cuda = True model = Yolov4() pretrained_dict = torch.load('yolov4_pig1.pth') model_dict = model.state_dict() # 1. filter out unnecessary keys pretr.原创 2020-06-17 09:48:14 · 296 阅读 · 0 评论