这样设置下,让核显不再偷懒

当安装了独立显卡后,通过BIOS设置可以启用Intel和AMD芯片组的核显,如Intel的iGPUMulti-Monitor和AMD的IGFXMulti-Monitor选项。在Intel500/600系列及部分AMD主板上,可能需要关闭LaunchCSM以显示相关设置。启用这些功能后,系统将允许核显和独显同时工作,支持多显示器输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PU带有核显的台式电脑,

在安装了独立显卡之后,

核显就不能用了?

只需一个设置,

就能让核显和独立显卡

一起工作啦!

Intel芯片组

Intel 100/200/300/400/500/600等系列芯片组的主板,型号后缀没有【F】的CPU内建了核显,开启华硕主板BIOS里的iGPU Multimonitor设置就可以同时启用核显和独显,让它们一起工作啦!

操作步骤

将显示器接到独显的输出接口上,开机后按Del键进入BIOS--按F7键进入高级模式--Advanced--System Agent (SA) Configuration(北桥)

933682820fcde3d355f9a5aa866c821c.jpeg

Graphics Configuration(显示设置)

139f36f2b9b37c1ff07d05687ce9e879.jpeg

iGPU Multi-Monitor(初始化iGPU)默认是Disabled(关闭)的,将其Enabled(开启),并将Primary Display(首选显卡)设置为PEG slot(指独显),完成后按F10键保存退出

04f7389928f7578c1af58a128451ba97.jpeg

需要注意的是,在500/600系列芯片组的主板上,由于11代和12代酷睿CPU的核显不支持传统Legacy的显示方式,若需看到并开启iGPU Multi-Monitor设置,需将BOOT--Launch CSM--Disabled(关闭)

7e291015abd6b7d94cca79a0836c3eec.jpeg

此时我们进入Windows操作系统下,右击开始菜单在设备管理器--显示适配器下可以看到核显和独显的工作状态都正常,并且核显和独显上的接口都可以输出画面了。

77d7e588c60eea1832a1d5451f00c926.jpeg

AMD芯片组

AMD B450/B550/X470/X570等系列芯片组的主板,型号后缀带有【G】的CPU内建了核显,开启华硕主板BIOS里的IGFX Multi-Monitor设置就可以同时启用核显和独显。

操作步骤

将显示器接到独显的输出接口上,开机后按Del键进入BIOS--按F7键进入高级模式--Advanced--NB Configuration

c68ba83ecd475de105b72a8665f40b11.jpeg

IGFX Multi-Monitor默认是Disabled(关闭)的,将其Enabled(开启),并按F10键保存退出即可

9d38a471d65fd3b909d1a23dd6b078c4.jpeg

需要注意的是,AMD X670/B650系列芯片组的主板,CPU都带核显,并且如果要看到并开启IGFX Multi-Monitor设置,也需将BOOT--Launch CSM--Disabled(关闭),其它操作则是一样的哦~

<think>好的,用户想知道如何在C++ MFC中使用OpenCV将图像示在Picture控件上。我之前看到过几个引用资料,需要整理一下方法。 首先,用户可能是在用较新版本的OpenCV,比如4.1以上,因为引用3提到新版本取消了CvvImage,所以旧方法可能不适用。需要确认用户是否需要兼容新版本的方法。 根据引用1和2,主要步骤是获取Picture控件的区域,调整OpenCV窗口大小,然后设置父窗口。引用2提到了使用GetWindowRect获取控件区域,cv::resizeWindow调整窗口,cvGetWindowHandle获取句柄,再用SetParent将父窗口设置为控件。这应该是一个可行的方法。 引用4提到动态示图像的偷懒方法,可能是指不断刷新控件示图像,但用户可能需要更正规的方式。不过如果用户需要实时示,可能需要定时器配合。 需要注意OpenCV窗口的嵌入需要处理窗口句柄和父子关系。可能需要先创建OpenCV的命名窗口,然后调整其父窗口为Picture控件。同时,调整窗口大小以适应控件区域,避免示不全。 另外,图片格式的转换可能也是关键。比如将OpenCV的Mat转换为MFC可示的位图,或者直接操作控件来绘制图像。但根据引用中的方法,似乎是通过窗口嵌入的方式,而不是直接绘制到控件上。这可能涉及到不同方法的优缺点,比如性能或兼容性问题。 用户可能遇到的问题包括:控件ID是否正确,OpenCV窗口是否可见,或者图像尺寸不匹配导致示不全。需要提醒用户在代码中注意这些点,比如正确设置控件ID,调整图像大小,或者处理窗口消息。 总结步骤应该是:获取控件尺寸→创建OpenCV窗口→调整窗口大小→设置父窗口→示图像。同时,可能需要处理图像缩放和刷新问题,特别是在动态示的情况下。 需要检查示例代码是否有误,比如是否正确使用CRect,是否调用了必要的API函数。还要注意OpenCV版本差异,比如函数名是否有变化,比如cvGetWindowHandle是否仍然可用。 最后,用户可能需要了解不同方法的优缺点,比如嵌入窗口的方法是否稳定,或者是否有更好的替代方案。根据引用3和4,可能存在更正规的方法需要后续研究,但当前方法可以作为紧急解决方案。</think>在C++ MFC中使用OpenCV将图像示到Picture控件,可以通过以下步骤实现: ### 一、心实现步骤 1. **获取控件尺寸** 使用`GetWindowRect`获取Picture控件的矩形区域,并转换为客户区坐标: ```cpp CRect rect; GetDlgItem(IDC_PIC1)->GetWindowRect(&rect); // 获取控件屏幕坐标 ScreenToClient(rect); // 转换为客户区坐标[^2] ``` 2. **创建OpenCV窗口** 创建带有名称的OpenCV窗口(注意必须命名): ```cpp cv::namedWindow("OpenCV_MFC", cv::WINDOW_AUTOSIZE); ``` 3. **调整窗口属性** ```cpp HWND hWnd = (HWND)cvGetWindowHandle("OpenCV_MFC"); // 获取OpenCV窗口句柄 ::SetParent(hWnd, GetDlgItem(IDC_PIC1)->m_hWnd); // 设置父窗口为Picture控件 cv::resizeWindow("OpenCV_MFC", rect.Width(), rect.Height()); // 匹配控件尺寸 ``` 4. **图像示与更新** ```cpp cv::imshow("OpenCV_MFC", matImage); // matImage为OpenCV的Mat对象 ``` ### 二、完整代码示例 ```cpp void CMyDlg::OnBnClickedDisplay() { // 1.读取图像 cv::Mat matImage = cv::imread("test.jpg"); // 2.获取控件尺寸 CRect rect; GetDlgItem(IDC_PIC1)->GetWindowRect(&rect); ScreenToClient(rect); // 3.创建并配置窗口 cv::namedWindow("OpenCV_MFC", cv::WINDOW_AUTOSIZE); HWND hWnd = (HWND)cvGetWindowHandle("OpenCV_MFC"); ::SetParent(hWnd, GetDlgItem(IDC_PIC1)->m_hWnd); cv::resizeWindow("OpenCV_MFC", rect.Width(), rect.Height()); // 4.示图像 cv::imshow("OpenCV_MFC", matImage); } ``` ### 三、关键注意事项 1. **OpenCV版本适配** - OpenCV4.1+版本已移除`CvvImage`类,推荐使用窗口嵌入方案[^3] - 若需直接绘制到控件,需手动实现`Mat`到`CBitmap`的转换 2. **动态示优化** ```cpp // 在定时器中更新示 SetTimer(1, 30, NULL); // 30ms刷新周期 void CMyDlg::OnTimer(UINT_PTR nIDEvent) { if(nIDEvent == 1){ // 更新图像并示 cv::imshow("OpenCV_MFC", newFrame); } CDialogEx::OnTimer(nIDEvent); } ``` 3. **常见问题处理** - 黑屏问题:检查控件资源ID是否匹配`IDC_PIC1` - 图像变形:添加`cv::resize(matImage, matImage, cv::Size(rect.Width(), rect.Height()))` - 内存泄漏:在对话框关闭时调用`cv::destroyWindow("OpenCV_MFC")`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值