- 博客(50)
- 收藏
- 关注
原创 MFC创建文件夹
//创建作业,用户选择保存的文件夹位置,返回路径String VariousFundtion::CreateTask(HWND m_hWnd){ char szPath[MAX_PATH];//存放选择的目录路径 CString str1, str2, FileName, filePath; CTime m_time; BROWSEINFO bi; bi.hwndOwner = m_hWnd; bi.pidlRoot = NULL; bi.pszDisplayName = (LPWSTR)
2022-12-15 18:13:51
678
原创 win10磁盘映射
1,准备两台电脑2,此电脑-管理-添加用户-设置账号密码3,用两根网线连接两台电脑,并将两台电脑设置为相同网关192.168.92.1 192.168.92.24,右键磁盘-属性-共享-高级共享-权限,共享名5,打开此电脑,网络映射-浏览-找到另外一台计算机的计算机名-点击盘-输入账号密码,这个账号密码是刚刚创建的出来的用户的账号和密码...
2022-12-15 18:12:13
4048
原创 OpenFace Win10 运行和抽离部分代码
需求:提取出OpenFace中的GazeAnaLyser 中的部分代码往一个写好的接口里面放,主要实现提取面部的所有关键点,估计出视线的功能;一,openface的安装与使用在win10上把openface跑起来这个链接够用了,这里主要参看博主第三部分“三、电脑上安装Visual Studio 2017”下面是所需要的文件,需要的可以自己取https://pan.baidu.com/s/1mYf9UERBqb7P0fWvpWJaDQ提取码:wqca二,抽取部分代码作为一个函数接口这里抽取的
2022-12-15 18:09:44
666
原创 Games101 作业7
虚拟机代码:路径追踪部分路径追踪步骤:1,摄像机对每个像素多次取样,每次取样射出一个射线;(在此代码中采样的变量为spp,采样率越大处理的效果越好,时间越久)2,如果该射线直接打到的光源上,则返回交点处的能量3,如果没打到任何物体上就返回空4,如果打到的是物体上的一点P(1) 在所有光源上,按光源面积均匀采样一次(2) 连接光源采样点和P点(3) 如果中间没有障碍物,则说明是直接光照,则计算其radiance(4) 如果有障碍物,说明是间接光照,对P点处进行半圆采样,获得一个采样的出射光
2022-02-25 16:14:28
670
1
原创 games101 作业6
虚拟机代码:光线与AABB(包围盒)的相交情况 光线与任意平面的相交情况 求光线和包围盒的相交情况Bounds3.hppinline bool Bounds3::IntersectP(const Ray& ray, const Vector3f& invDir, const std::array<int, 3>& dirIsNeg) const{ float tEnter = -std
2022-02-21 19:03:54
632
原创 games101 作业4 Bezier曲线
虚拟机代码:理论:前面的(n, i)代表的是组合组合:C(n,m)=P(n,m)/P(m,m) =n!/m!(n-m)!算法流程:递归构造Bezier曲线recursive_bezier()cv::Point2f recursive_bezier(const std::vector<cv::Point2f> &control_points, float t) { // TODO: Implement de Casteljau's algorithm
2022-02-15 15:25:13
2169
原创 game101 作业2(含提高)
虚拟机代码:计算重心坐标的函数static std::tuple<float, float, float> computeBarycentric2D(float x, float y, const Vector3f* v)static std::tuple<float, float, float> computeBarycentric2D(float x, float y, const Vector3f* v){ float c1 = (x*(v[1].y() - v
2022-02-12 18:31:25
1396
原创 Games101作业0
虚拟机下的代码int main(){ vector3f P(2.0,1.0,1.0); Matrix3f rotate,translation; float sita = 45 * M_PI/180; rotate<< cos(sita), -sin(sita), 0,0, sin(sita), cos(sita), 0.0, 0.0, 0.0, 0.0; translation<< 1,0,1, 0,1,2, 0,0,1;
2022-01-30 14:21:56
1624
原创 Gams101 作业1(含提高)
虚拟机Eigen::Matrix4f get_view_matrix(Eigen::Vector3f eye_pos){ Eigen::Matrix4f view = Eigen::Matrix4f::Identity(); Eigen::Matrix4f translate; translate << 1, 0, 0, -eye_pos[0], 0, 1, 0, -eye_pos[1], 0, 0, 1, -eye_pos[2], 0, 0, 0,
2022-01-30 14:06:33
1756
原创 Opencv C++ 获得某点的HSV和RGB值
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;Mat inputImage;Mat outputImage;int GetPixelHSV(Mat src);void on_MouseHandle(int event, int x, int y, int flags, void* param);int GetPixelHSV(Mat src
2021-10-15 12:41:43
1624
原创 opencv c++ 检测红色HSV 和RGB
1,需要根据需求改下HSV三个变量的范围if (!(((H > 0) && (H < 9)) || (H > 160) && (H < 180)&& (S >= 22 && S <= 140) /*&& (V > 80 && V < 230)*/)) { imgHSV.at<Vec3b>(i, j)[0] = 0; imgHSV.
2021-10-15 12:22:40
2626
原创 opencv C++ 形状检测
参考链接:https://github.com/shivangnayar-crypto/SHAPE-DETECTION-OPENCV// 形状#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <opencv2/imgproc.hpp>#include <iostream>using namespace cv;using namespace std;
2021-10-15 12:12:46
656
原创 MFC 打开外部exe 显示和隐藏外部exe窗口
直接打开外部exe,手动的点击关闭WinExec("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打开Test.exe 开启一个进程,在后台自动的开启exe和关闭exe,不要显示其界面,注意字符集为多字节字符思路:开启一个窗口 // 全局变量STARTUPINFO si;PROCESS_INFORMATION pi;TCHAR szDesktop[256] = _T("MyDesktop");HDE
2021-07-15 08:57:46
3846
原创 MFC 在自定义类中向MFC窗口发送消息
在MSGDlg.h或者其他头文件中增加自定义自定义消息:#define WM_COUNT_MSG WM_USER+100在MSGDlg.h头文件中添加消息处理函数的声明 afx_msg LRESULT OnCountMsg(WPARAM,LPARAM);在CMSGDlg类实现文件MSGDlg.cpp中的消息映射表中加入自定义消息映射:BEGIN_MESSAGE_MAP(CMSGDlg, CDialog) ON_WM_PAINT() ON_MESSAGE(WM_CO..
2021-06-09 17:43:02
1183
原创 MFC edit失去焦点则判断输入是否合格
int sign1, sign2;UINT_PTR temp;// 开启定时器的按钮,可以直接写在onpaint中,免得手动点击来响应void CMFCTestDlg::OnBnClickedButton2(){ temp = SetTimer(1,200,NULL);}// 定时器void CMFCTestDlg::OnTimer(UINT_PTR nIDEvent){ // TODO: 在此添加消息处理程序代码和/或调用默认值 if (temp == nIDEvent)
2021-06-08 11:06:00
451
原创 MFC 访问文件夹,判断两个文件夹内文件名称是否完全匹配
#include "pch.h"#include "framework.h"#include "MFCTest.h"#include "MFCTestDlg.h"#include "afxdialogex.h"#include<string>#include<vector>#include<map>#include<algorithm>using namespace std;map<int, string >m_filenam
2021-06-08 10:25:05
258
原创 OPENCV C++ 多线程播放音频和视频
说明:代码需要用蓝色为触发点,当视场中蓝色部分大于一定程度后,开启线程调用音频和视频#include <iostream>#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include<windows.h>#include <mmsystem.h>#include<dsound.h>#include <thread>#prag
2021-06-03 11:01:06
3531
1
原创 MFC 在指定Picture显示图片
代码一:直接去文件夹读取參數:PathName ,为图片文件路径,注意路径类型为CStringPWnd,为待显示的picture控件id// 在指定控件上显示牌void BeginGame::showPic(CString pathName, CWnd* pWnd){ CImage myImage; myImage.Load(pathName); CRect rect; CDC* pDC = pWnd->GetDC(); //第1个控件 pWnd->GetClientRe
2021-05-21 16:06:03
239
1
原创 OPENCV C++ HSV 空间操作
标题#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ // Mat srcimage = imread("fiveExpereince_test_img.jpg"); Mat hsv;//HSV图 Mat srcimage = imread("test21.jpg"); imshow("sr
2021-04-27 21:41:20
1148
1
原创 C++ OPENCV 伪色彩生成代码
随机生成点添加色彩#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ // Mat srcimage = imread("fiveExpereince_test_img.jpg"); Mat hsv;//HSVͼ Mat src = imread("gray.jpg",0); imshow("
2021-04-27 19:31:05
1222
3
原创 C++ OPENCV 灰度共生矩阵的生成和利用
#include <string>#include<fstream>#include<iostream>#include <vector>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;typedef struct _GLCMFeatures{ _GLCMFeatures() : energy(0.0) ,
2021-04-27 15:05:30
2272
1
原创 C++ OPENCV 傅里叶变换代码
#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;cv::Mat image_make_border(cv::Mat& src){ int w = getOptimalDFTSize(src.cols); int h = getOptimalDFTSize(src.rows); Mat padded; copyMakeBorder(sr
2021-04-27 14:58:20
1243
1
原创 C++解決二元二次方程组
要配置一个库Eigen库链接:https://pan.baidu.com/s/1AofB13zldSq1fT_lKMGf6g 提取码:wqcc#include <iostream>#include <Eigen/Core>#include <Eigen/Dense>#include <complex>#include <cmath>#include <math.h>#include <cfloat>#in
2021-04-27 13:42:28
1277
原创 计时器SetTimer()
UINT_PTR temp;void CTestDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 temp = SetTimer(1, 2000, NULL); //一个1秒触发一次的定时器}void CTestDlg::OnTimer(UINT_PTR nIDEvent){ // TODO: 在此添加消息处理程序代码和/或调用默认值 if (temp== nIDEvent) { MessageBox(_T("计时器触发"))
2021-04-19 19:35:25
165
原创 MFC 给CFileDialog指定路径,选择任意类型图片
void CNewTestDlg::OnBnClickedButton2(){ CFileDialog ccFileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, _T("Joint Picture Group(*.jpg)|*.jpg;*.ico;;*.bmp;*.png;*.gif;*.tif|ALL Files(*.*)|*.*||"), NULL); CString p
2021-04-12 12:57:53
441
1
原创 点击主对话框按钮,在子对话框picture中立即显示图像
方法一:1,注意一定在子对话框的这里面有ON_WM_PAINT这句话,子对话框中不会默认的创建Paint函数,需要在类向导的“消息”中添加响应函数BEGIN_MESSAGE_MAP(Child, CDialogEx) ON_BN_CLICKED(IDC_BUTTON1, &Child::OnBnClickedButton1) ON_WM_TIMER() **ON_WM_PAINT()**END_MESSAGE_MAP()2,在子对话框的onPaint()函数中写上显示图像的函数vo
2021-04-12 11:14:30
100
转载 CV_8UC1,CV_8UC2,CV_8UC3等意思
我也不是很熟,但是Mat存图像也用过,试着说一下我的理解:一般的图像文件格式使用的是 Unsigned 8bits吧,CvMat矩阵对应的参数类型就是CV_8UC1,CV_8UC2,CV_8UC3。(最后的1、2、3表示通道数,譬如RGB3通道就用CV_8UC3)而float 是32位的,对应CvMat数据结构参数就是:CV_32FC1,CV_32FC2,CV_32FC3…double是64bits,对应CvMat数据结构参数:CV_64FC1,CV_64FC2,CV_64FC3等。——————
2021-03-10 14:36:00
1265
原创 利用OPENCV实现透视变换
#include <iostream>#include <string>#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/highgui.hpp"#include "HougnRoundCheck.h"using namespace cv;using namespace std;// 直方图均衡化Mat equalize_img(Mat& src_img)
2021-03-09 16:03:16
339
1
原创 彩色直方图bin的含义
1,计算颜色直方图时,横坐标是颜色空间,纵坐标是该颜色的像素点的数量。2,对于RGB而言,每个通道都有0到255个灰度集,即一共256个若采用1的思路,则有 256 x 256 x 256 个横坐标,并且横坐标对应的纵坐标的值也比较少(一个图中像素值相同的能有多少?)3,为解决这种问题,采用了合并的思想,也就出现了bin。4,因此在实际中,计算颜色直方图需要将颜色空间划分为若干个小的颜色区间。对于每个颜色通道(R,G,B),每32个划分到一个bin里面。R:0到255 划分为 8个binG:0到
2021-03-09 13:59:14
1430
原创 利用matlib计算参数,使用opencv实现畸变矫正
1,打开matlib,点击图所示2,选择图所示3,点击如图所示4,标定板一格的宽度5,失败的会遗弃6,计算,7,导出结果8,在主页面点击如图所示9,获得畸变系数**参数说明:第一个为径向畸变:k1 ,k2, k3=0(matlib 省略了)第二个为切向畸变:p1,p2opencv 的畸变数组为(k1, k2, p1, p2, k3)第三个为相机内参,将其输入到opencv中时候,要转置,可看下图的写法** Mat cameraMatrix = Mat::e
2021-03-09 12:29:06
1020
原创 MFC用多线程实现两个窗口的计数功能
dialog图全局变量static int num1 = 0;static int num2 = 0;bool pause = false;单独开辟的两个线程// 创建一个线程实现1秒UINT ThreadProc(LPVOID lpParam) { CMyClassDlg* Pdlg = (CMyClassDlg*)lpParam; //获得对话框句柄 int i = num1; for (;;) { CString s; s.Format(_T("%d"),
2021-03-08 20:56:06
553
原创 U盘中毒后,文件夹被隐藏的解决方法
方法一:就是我用的方法,用WINDOWS自带的DOS模式把文件夹改成普通文件夹。具体步骤为:在开始菜单中找到运行对话框,在运行对话框中键入CMD,进入DOS模式。后在光标处输入命令,格式为:ATTRIB 文件路径 -r-s-h。亲测有用。...
2021-01-05 12:45:51
1034
原创 算法复习
大整数乘法 分治法分治法思想:将一个规模为n的问题,分解成k个规模较小的子问题,子问题和原问题相同,且相互独立。然后递归的解决这些子问题,最终合并成原问题的解。所以说其是一种自底向上的算法。伪代码long Bignumber(long X, long Y, int n){ if(x==0||y==0) return 0; else if(n<2) return Y*X; else { int A = X/pow(10, n/2); int C = Y/pow(10, n/2
2020-12-30 09:23:51
223
原创 霍夫变换直线和圆变换
霍夫变换直线变换霍夫变换(Hough)是一个非常重要的检测间断点边界形状的方法。它通过将图像坐标空间变换到参数空间,来实现直线与曲线的拟合。1.直线检测1.1 直线坐标参数空间在图像x−y坐标空间中,经过点(xi,yi)的直线表示为:yi=axi+b(1)其中,参数a为斜率,b为截矩。通过点(xi,yi)的直线有无数条,且对应于不同的a和b值。如果将xi和yi视为常数,而将原本的参数a和b看作变量,则式子(1)可以表示为:b=−xia+yi(2)这样就变换到了参数平面a−b。这个变换就
2020-12-19 21:58:39
763
2
原创 OpenCV双目相机的标定C++
代码来和数据集来自于链接:https://pan.baidu.com/s/1bYrj57MEdhwWp45XXVbdpA 提取码:b3m6双目相机标定的过程:1.,调节两个相机的角度,给标定板拍10组左右的照片。1,通过张正友的思想得到两个相机的内外参矩阵和畸变矩阵,从而能够实现对两个相机的矫正。2,矫正的目的是为了利用矫正图,加上两个相机的一些参数计算出深度z(镜头到物体的距离)。3,通过计算图片中物体的每一个点距离相机镜头的深度,从而构建出该物体的三维立体图。总而言之,双目相机可以照到一个
2020-11-27 14:44:29
6016
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人