致敬那些我未曾逝去的文采——我的创作纪念日

第一篇章:机缘👑

”我打开了CSDN,被里面浩瀚的技术积累深深吸引。“

 ” 陈著玉麟堂上神仙,算来便合归廊庙。“

 说起机缘,我们不得不提一下,我们为何要写博客?这并非一个困难的问题,我们能轻易想到很多原因,这些话无非浓缩成几个字:

“ 如果我们写博客会发生什么?"

  1. 笔记恢复力:相信大家都有过这样的经历:我们好不容易学会一个很困难的知识点并且完成了有关项目,但是过了几个月我们就忘得差不多了。如果我们写博客,首先和别人讲可以起到巩固知识的作用,其次和别人交流可以让我们理解的更加深刻,最后当我们忘记知识的时候,看自己写的绝对是回复当初水平最快捷的方式。
  2. 建立自己的影响力:通过写博客,不少人能够成为影响十几万IT人甚至是几百万的程度,以后我们的后辈都可以通过博客来了解,哦,原来我的前辈写过这么多对大家有帮助的文章,这不免是非常骄傲的,更可以激励身边的人前进。
  3. 建立自己的技术积累仓:现在的博客不仅仅是一个简单的博客,还包括了资源仓、代码仓等等等,我们可以免费的把我们曾经的技术积累放到CSDN博客上面来,以后碰到了类似的项目,可以直接登录CSDN,从我们的仓库中拉取所需的技术资源。

第二篇章:对日常的影响🎈

”不在只忙自己的事情。“

        熟悉我博客的都知道,我开源了好几个项目和数据集,每天都络绎不绝的有人需要这几份资源,所以我的日常最大的一个变化就是:我得每天抽出时间登录CSDN,给大家发送资源。收获大家一声声感谢,是对我莫大的鼓励。多的时候一天可以收获到有十几二十个人的感谢,每天如此。幸福感爆棚啊,有木有。。。

        除此之外,我的


第三篇章:成就🎈

 ”合格的spy。不解释。“

要说成就的话,通过写博客,我收获了的东西不言而喻,但主要是两点:

  1. 竞赛复习:前面也说过”看自己的文章是恢复最初水平最快的方式“,我蓝桥杯看自己的文章复习只花了两天的时间就在公认最难题目的之一的某届中轻松拿到了省一。但因为实习工作已经找到了,就没有接着比赛下去了,是个遗憾...
  2. 毫无疑问就是实习了:实习面试中,面试官看到我们有几个w的粉丝,这不得高低多看你一眼。所以说嘛,我现在在做算法实习生,发了两个月工资,工资嘛,不太好透露,但是我是挺满意的。想知道的,砸门私底下说。哈哈哈....
  3. 写到这里才想到其实还有第3点啦。啊哈哈,就是我们平时做项目呀,他会分成很多个小项目,可能这其中的子项目之前就放在博客中呢?也就是我们积累的技术仓,那不就直接拿出来用嘛,啊哈哈,工作量够的话,还可以作为毕设去卖,多好一件事情儿。

至于上面的Spy截图大家图一乐就好,是一种新奇的写博客方式,挺好玩的,啊哈哈哈,有兴趣的话就来捧捧场咯!

欸,这个代码真挺好用的,出自(6条消息) 【Opencv工程开发所用类】能完美嵌入目标检测、语义分割等计算机视觉任务的视频摄像头类_opencv用什么摄像头_大气层煮月亮的博客-CSDN博客

# --time**2022.8.13
# --** worker:江子良
 
import cv2
import time
 
import torch
import warnings
import numpy as np
 
from PIL import Image
 
from loguru import logger
 
import os
 
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
 
 
class VideoTracker(object):
    def __init__(self, cam=-1, video_path='', save_path='', use_frame=[0, -1], display=True):
        self.display = display
        self.use_frame = use_frame
        self.video_path = video_path
        self.cam = cam
        if self.cam != -1:
            print("Using webcam :" + str(self.cam))
            self.vdo = cv2.VideoCapture(self.cam)
        else:
            print("Using video :" + str(self.video_path))
            self.vdo = cv2.VideoCapture()
 
        self.save_path = save_path
        self.frame_interval = 1
        self.use_cuda = True
 
        use_cuda = self.use_cuda and torch.cuda.is_available()
        if not use_cuda:
            warnings.warn("Running in cpu mode which maybe very slow!", UserWarning)
 
    def __enter__(self):
        if self.cam != -1:
            ret, frame = self.vdo.read()
            assert ret, "Error: Camera error"
            self.im_width = frame.shape[0]
            self.im_height = frame.shape[1]
            self.count_frame = int(-1)
        else:
            assert os.path.isfile(self.video_path), "Path error"
            self.vdo.open(self.video_path)
            self.im_width = int(self.vdo.get(cv2.CAP_PROP_FRAME_WIDTH))
            self.im_height = int(self.vdo.get(cv2.CAP_PROP_FRAME_HEIGHT))
            self.count_frame = int(self.vdo.get(cv2.CAP_PROP_FRAME_COUNT))
            assert self.vdo.isOpened()
 
        if self.save_path != '':
            os.makedirs(self.save_path, exist_ok=True)
 
            # path of saved video and results
            self.save_video_path = os.path.join(self.save_path, "results.avi")
 
            # create video writer
            fourcc = cv2.VideoWriter_fourcc(*'MJPG')
            self.writer = cv2.VideoWriter(self.save_video_path, fourcc, 24, (self.im_width, self.im_height))
 
            # logging
            logger.info("Save results to {}".format(self.save_path))
 
        return self
 
    def __exit__(self, exc_type, exc_value, exc_traceback):
        if exc_type:
            print(exc_type, exc_value, exc_traceback)
 
    def run(self):
        idx_frame = 0
        all_costTime = 0
 
        while self.vdo.grab():
            idx_frame += 1
            if idx_frame % self.frame_interval:
                continue
                
            if idx_frame < self.use_frame[0]:
                continue
 
            if idx_frame > self.use_frame[1] and self.use_frame[1] != -1:
                break
 
            start = time.time()
            ref, ori_im = self.vdo.retrieve()
 
            if ref is True:
                # start your code from here
                
                # -----------end-----------
                if self.display:
                    cv2.imshow("frame", ori_im)
                    if cv2.waitKey(1) & 0xFF == ord('q'):
                        break
 
                if self.save_path:
                    self.writer.write(ori_im)
 
                # logging
                end = time.time()
                all_costTime += end - start
                if self.display:
                    if self.cam != -1:
                        logger.info("frame schedule:<{}/-1> ({:.2f} ms), fps: {:.03f}"
                                .format(idx_frame, end - start, 1 / (end - start)))
                    else:
                        logger.info("frame schedule:<{}/{}> ({:.2f} ms), fps: {:.03f}"
                                .format(idx_frame, self.count_frame, end - start, 1 / (end - start)))
 
        logger.info("ALL_COST_TIME:{:.3f}s".format(all_costTime))

第四篇章:憧憬🎈

 ”攒钱,然后找到喜欢的人,和她一起环游世界!“

        钱很重要,觉得钱不重要的,要么是小屁孩,要么是富二代。所以我非常憧憬有一天我可以手握好几百个W,让自己和自己身边的人过上更好的生活。暂时只能写这么多了....溜去板砖了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大气层煮月亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值