应捕捉鼠标单击的函数库中应该有,那该怎么写呢?网上有篇不错的文章:
http://www.embedu.org/Column/Column421.htm
仿照上面的文章,自己重新写一个类 MyTextBrowser,从基类 QTextBrowser 中继承而来,
然后重写该类的 mousePressEvent 函数,其实类似这样的函数是系统提供的,有点类似
MFC 中的消息响应机制,在该函数中发出信号即可。这样当鼠标按下时,就发出了一个
clicked()的信号,然后在主界面中响应该信号对应的槽函数就 ok 了。
当要使用新建的 MyTextBrowser 类代替原先的 QTextBrowser 时,只需打开.ui 设计文件,
在 Object 栏中找到对应的 object,然后右键选择进入 Promoted Widgets,add 一个
MyTextBrwoser 即可。
3.int getOptimalDFTSize(int vecsize)
该函数是为了获得进行 DFT 计算的最佳尺寸。因为在进行 DFT 时,如果需要被计算的数
字序列长度 vecsize 为 2 的 n 次幂的话,那么其运行速度是非常快的。如果不是 2 的 n 次
幂,但能够分解成 2,3,5 的乘积,则运算速度也非常快。这里的 getOptimalDFTSize()函
数就是为了获得满足分解成 2,3,5 的最小整数尺寸。很显然,如果是多维矩阵需要进行
DFT,则每一维单独用这个函数获得最佳 DFT 尺寸。
4.void copyMakeBorder(InuptArray src, OutputArray dst, int top , int bottom, int left, int
right, int borderType, const Scalar& value=Scalar())
该函数是用来扩展一个图像的边界的,第 3~6 个参数分别为原始图像的上下左右各扩
展的像素点的个数,第 7 个参数表示边界的类型,如果其为 BORDER_CONSTANT,则扩
充的边界像素值则用第 8 个参数来初始化。将 src 图像扩充边界后的结果保存在 dst 图
像中。
5.merge()函数是把多个但通道数组连接成 1 个多通道数组,而 split()函数则相反,把 1
个多通道函数分解成多个但通道函数。
6.Void magnitude(InputArray x, InputArray y, OutPutArray magnitude)
该函数是计算输入矩阵 x 和 y 对应该的每个像素平方求和后开根号保存在输出矩阵
magnitude 中。
7.函数 log(InputArray src, OutputArray dst)是对输入矩阵 src 中每个像素点求 log,保存在
输出矩阵 dst 的相对应的位置上。
8.因为 Qt 中显示图片,如果图片类型为亮度图像,即其像素值为 0~1 之间,则显示出
来的是全黑的图像。所以为了似图片显示正常,必须全部扩大 255 被,使之在 0~255
之间。当然了,如果是 opencv 自带的 imshow()函数,对于这样的值在 0~1 之间图像它
会自动识别,并且有个术语称之为亮度图像。
评论0