修改Ubuntu启动画面中的Logo 2018-07-03

修改Ubuntu启动画面中的Logo

// 在grub文件中可以设置使用splash或text模式启动
/etc/default/grub -> GRUB_CMDLINE_LINUX_DEFAULT
更新 update-grub
修改 /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo.png
修改 /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo16.png
修改 /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
修改 /usr/share/plymouth/themes/ubuntu-text/ubuntu-text.plymouth.in
更新 update-initramfs -u

强制重启Linux系统的几种方法 2018-06-28

强制重启Linux系统的几种方法

实际生产环境中某些情况下 Linux 服务器系统在出现致命错误需要远程进行重启,通过常规的 reboot、init 6 等方法无法正常重启(例如重启时卡在驱动程序里等情况),这时就需要通过下面介绍的几种特殊的方法进行强制重启。

注意

下面这些强制重启 Linux 的方法都是直接跳过 umount 文件系统及 sync 等操作,可能导致数据损坏,不在特殊情况下请勿使用。
另外当然这些都是需要 root 超级用户权限的哦。

Qt中实现图片透明度设置与显示 2018-06-24

Qt中实现图片透明度设置与显示

drawForeground(QPainter *painter, const QRectF &rect)  
{  
    QPixmap foreImg;  
    foreImg.load("C:/Users/Desktop/fengjing1.jpg");  
    if (!foreImg.isNull())  
    {  
    painter->setOpacity(0.4);//透明度设置  
    painter->drawPixmap(int(sceneRect().left()), int(sceneRect().top()), foreImg);     
    }  

}  
drawBackground(QPainter *painter, const QRectF &rect)  
{  
    QPixmap foreImg;  
    foreImg.load("C:/Users/Desktop/fengjing2.jpg");  
    if (!foreImg.isNull())  
    {  
    painter->setOpacity(0.9);//透明度设置  
    painter->drawPixmap(int(sceneRect().left()), int(sceneRect().top()), foreImg);     
    }  
}  

Linux音频配置文件asound.conf的使用 2018-06-04

Linux音频配置文件asound.conf的使用

asound.conf文件作用:主要用来做Android/Linux音频的路由控制,不同路由可以设置多个寄存器的不同配置组合,形成不同的音频通道,从而当路由改变时,底层codec通道随之改变。

// 如何获取当前的声卡卡号与设备号呢 ...


// aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC662 rev3 Analog [ALC662 rev3 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Qt中两个类互相包含与引用 2018-05-24

Qt中两个类互相包含与引用

// 案例基础类

// a.h
class A { }

// b.h
class B { }
// 如果想在类A中使用类B,在类B中使用类A,应该怎么办

// a.h
// b.h
class A
{
    B *b
}

QGraphicsItem如何使用信号与槽 2018-05-19

QGraphicsItem如何使用信号/槽

对于 QGraphicsItem 来说,信号/槽和属性机制不是它的一部分,因为它不继承自 QObject。这是一个出于性能考虑的设计决策,允许比较大的场景以及快速的交互。

特殊情况下,如果真的需要使用信号/槽,可以使用 QObject 的信号/槽和属性机制来扩展 QGraphicsItem。


继承自 QObject 和 QGraphicsItem

OpenCV之BackgroundSubtractorMOG2动态目标检测 2018-05-12

OpenCV之BackgroundSubtractorMOG2动态目标检测


// OpenCV3 与 OpenCV2 一些区别 ...
Ptr<BackgroundSubtractor> bg_model = createBackgroundSubtractorMOG2();
bg_model->apply(img, fgmask);

// ------------------------------------ //
//  params.minThreshold = 20;//二值化的起始阈值
//  params.maxThreshold = 180;//二值化的终止阈值
//  params.thresholdStep = 10;//二值化的阈值步长
//  params.minConvexity = 0.5f;//斑点的最小凸度 默认0.95f
//  params.minInertiaRatio = 0.03f;//斑点的最小惯性率 默认0.1f
//  params.minArea = 120;//斑点的最小面积
//  params.maxArea = 5000;//斑点的最大面积
//  params.blobColor = 255;//检测白色
//  重复的最小次数,只有属于灰度图像斑点的那些二值图像斑点数量大于该值时,该灰度图像斑点才被认为是特征点
//  params.minRepeatability = 2;
//  最小的斑点距离,不同二值图像的斑点间距离小于该值时,被认为是同一个位置的斑点,否则是不同位置上的斑点
//  params.minDistBetweenBlobs = 10;
// ------------------------------------ //

Golang中的Race检测 2018-04-23

Golang中的Race检测

由于golang中的go是非常方便的,加上函数又非常容易隐藏go。 所以很多时候,当我们写出一个程序的时候,我们并不知道这个程序在并发情况下会不会出现什么问题。

所以在本质上说,goroutine的使用增加了函数的危险系数论go语言中goroutine的使用。比如一个全局变量,如果没有加上锁,我们写一个比较庞大的项目下来,就根本不知道这个变量是不是会引起多个goroutine竞争。

Rect主要做的就是检测线程间对某一个对象产生了竞争使用

// 未加锁版
package main

Golang之获取Struct的Tag 2018-03-05

获取Struce的Tag

package main

import (
    "fmt"
    "reflect"
)

type Foo struct {
    FirstName string `tag_name:"tag 1"`
    LastName  string `tag_name:"tag 2"`
    Age       int    `tag_name:"tag 3"`
}

Golang之一个有趣的闭包问题 2018-03-05

Golang之一个有趣的闭包问题

// 在论坛上看到一个有趣的闭包例子, 下面这两个例子输出结果截然不同 ... 
// 未达到目的
package main

import (  
    "fmt"
    "time"
)

type field struct {  
    name string
}