[{"data":1,"prerenderedAt":2508},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian":3,"wiki-doc-items-\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian":2448,"language-switcher-data-\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian":2492,"wiki-i18n-paths-\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian":2507},{"id":4,"title":5,"body":6,"canonicalPath":2430,"chapterDepth":2431,"chapterOrder":2432,"date":2433,"description":57,"docI18nKey":2434,"docKey":2435,"docRoot":2436,"docTitle":2437,"extension":2438,"i18nKey":2439,"isBlogPost":2440,"isWikiDoc":94,"isWikiIndex":2440,"layout":2441,"legacyPath":2442,"locale":2443,"localeSlug":2444,"meta":2445,"navigation":94,"path":2430,"seo":2446,"sourcePath":2442,"sourceStem":2439,"stem":2439,"wikiDepth":91,"__hash__":2447},"content\u002Fwiki\u002F2023-12-10-电控视觉环境搭建\u002F0500-OpenCV__CUDA环境搭建.md","OpenCV_CUDA环境搭建",{"type":7,"value":8,"toc":2426},"minimark",[9,14,23,26,34,49,52,59,63,68,78,168,171,176,181,184,417,420,488,492,499,505,510,515,547,552,581,586,592,597,602,606,610,649,654,657,663,674,859,866,872,875,878,881,886,889,892,895,898,903,908,911,989,993,996,999,1006,1011,1277,1282,1287,1290,1294,1299,1304,1307,1312,1315,1320,1325,1328,1331,1336,1341,1344,1349,1354,1357,1360,1363,1368,1375,1380,1383,1386,1391,1394,1397,1402,1405,1410,1431,1436,1439,1444,1448,1451,1456,1561,1566,1569,1574,1577,1582,1585,1591,1689,1694,1697,1702,1706,1711,1724,1727,1761,1766,1769,1778,1783,1787,1799,1804,1811,1817,1999,2016,2021,2026,2029,2034,2037,2041,2049,2055,2058,2067,2072,2077,2080,2091,2094,2097,2100,2103,2107,2110,2118,2121,2188,2191,2215,2218,2233,2236,2248,2251,2296,2299,2302,2339,2343,2351,2354,2357,2361,2364,2375,2378,2381,2387,2391,2412,2415,2422],[10,11,13],"h3",{"id":12},"linux","Linux",[15,16,17,18,22],"p",{},"更推荐在Linux上部署，一些深度学习的东西，在Linux上的运行速度要明显",[19,20,21],"strong",{},"远远高于","Windows。",[15,24,25],{},"如果你没有空闲硬盘装Linux了，可以考虑WSL2(在Windows上运行的Linux子系统2)，虽有一点点性能损失，但速度也远远高于Windows。",[15,27,28,29],{},"WSL2安装教程",[30,31,33],"a",{"href":32},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng","Vinci机器人队Linux入门教程",[15,35,36,39,40,45,46],{},[19,37,38],{},"实体机Linux","**＞",[19,41,42],{},[19,43,44],{},"WSL2","＞＞**",[19,47,48],{},"Windows",[15,50,51],{},"关于cv_bridge:最好在安装ros之前编译opencv，这样安装ros时,cv_bridge就会自己指向已经安装过的opencv，并且ros不会另外安装opencv，如此就可以通过find_package指令找到电脑上仅有的cv_bridge和opencv，保证系统环境不被污染。关于补救办法，请看常见问题",[15,53,54],{},[55,56],"img",{"alt":57,"src":58},"","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage23.webp",[60,61,62],"h4",{"id":62},"保证显卡正常",[15,64,65],{},[19,66,67],{},"请确保 英伟达驱动、CUDA、cuDNN 全部安装成功并且版本正确。",[15,69,70,73,75],{},[19,71,72],{},"(安装驱动、CUDA、cuDNN教程:",[30,74,33],{"href":32},[19,76,77],{},")",[79,80,84],"pre",{"className":81,"code":82,"language":83,"meta":57,"style":57},"language-bash shiki shiki-themes github-light github-dark","\n# 检查显卡驱动\nnvidia-smi\n\n# 验证CUDA是否安装成功\nnvcc -V\n\n# 检查cuDNN版本命令(仅仅只是查了头文件)\ncat \u002Fusr\u002Flocal\u002Fcuda\u002Finclude\u002Fcudnn_version.h | grep CUDNN_MAJOR -A 2\n","bash",[85,86,87,96,103,110,115,121,131,136,142],"code",{"__ignoreMap":57},[88,89,92],"span",{"class":90,"line":91},"line",1,[88,93,95],{"emptyLinePlaceholder":94},true,"\n",[88,97,99],{"class":90,"line":98},2,[88,100,102],{"class":101},"sJ8bj","# 检查显卡驱动\n",[88,104,106],{"class":90,"line":105},3,[88,107,109],{"class":108},"sScJk","nvidia-smi\n",[88,111,113],{"class":90,"line":112},4,[88,114,95],{"emptyLinePlaceholder":94},[88,116,118],{"class":90,"line":117},5,[88,119,120],{"class":101},"# 验证CUDA是否安装成功\n",[88,122,124,127],{"class":90,"line":123},6,[88,125,126],{"class":108},"nvcc",[88,128,130],{"class":129},"sj4cs"," -V\n",[88,132,134],{"class":90,"line":133},7,[88,135,95],{"emptyLinePlaceholder":94},[88,137,139],{"class":90,"line":138},8,[88,140,141],{"class":101},"# 检查cuDNN版本命令(仅仅只是查了头文件)\n",[88,143,145,148,152,156,159,162,165],{"class":90,"line":144},9,[88,146,147],{"class":108},"cat",[88,149,151],{"class":150},"sZZnC"," \u002Fusr\u002Flocal\u002Fcuda\u002Finclude\u002Fcudnn_version.h",[88,153,155],{"class":154},"szBVR"," |",[88,157,158],{"class":108}," grep",[88,160,161],{"class":150}," CUDNN_MAJOR",[88,163,164],{"class":129}," -A",[88,166,167],{"class":129}," 2\n",[15,169,170],{},"出现下图这样的，则你是有英伟达驱动，CUDA以及cuDNN的",[15,172,173],{},[55,174],{"alt":57,"src":175},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage24.webp",[15,177,178],{},[55,179],{"alt":57,"src":180},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage25.webp",[60,182,183],{"id":183},"安装依赖项",[79,185,187],{"className":81,"code":186,"language":83,"meta":57,"style":57},"\n# Debian系系统\nsudo apt install -y libcurl4 build-essential pkg-config cmake-gui \\\n    libopenblas-dev libeigen3-dev libtbb-dev \\\n    libavcodec-dev libavformat-dev \\\n    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev \\\n    libswscale-dev libgtk-3-dev libpng-dev libjpeg-dev \\\n    libcanberra-gtk-module libcanberra-gtk3-module libv4l-dev python3-dev python3-numpy\n\n# RHEL红帽系系统\nbash -c 'sudo dnf install https:\u002F\u002Fmirrors.rpmfusion.org\u002Ffree\u002Ffedora\u002Frpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https:\u002F\u002Fmirrors.rpmfusion.org\u002Fnonfree\u002Ffedora\u002Frpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'\nsudo dnf install -y curl gcc gcc-c++ make cmake cmake-gui \\\n    openblas-devel eigen3-devel tbb-devel \\\n    ffmpeg-libs ffmpeg-devel \\\n    gstreamer1-plugins-base-devel gstreamer1-devel \\\n    gtk3-devel libpng-devel libjpeg-devel \\\n    libc=aanberra-gtk3 libcanberra-devel v4l-utils v4l2loopback openexr-devel python3-dev python3-numpy\n\n",[85,188,189,193,198,227,240,250,260,276,293,297,303,314,345,359,370,381,395],{"__ignoreMap":57},[88,190,191],{"class":90,"line":91},[88,192,95],{"emptyLinePlaceholder":94},[88,194,195],{"class":90,"line":98},[88,196,197],{"class":101},"# Debian系系统\n",[88,199,200,203,206,209,212,215,218,221,224],{"class":90,"line":105},[88,201,202],{"class":108},"sudo",[88,204,205],{"class":150}," apt",[88,207,208],{"class":150}," install",[88,210,211],{"class":129}," -y",[88,213,214],{"class":150}," libcurl4",[88,216,217],{"class":150}," build-essential",[88,219,220],{"class":150}," pkg-config",[88,222,223],{"class":150}," cmake-gui",[88,225,226],{"class":129}," \\\n",[88,228,229,232,235,238],{"class":90,"line":112},[88,230,231],{"class":150},"    libopenblas-dev",[88,233,234],{"class":150}," libeigen3-dev",[88,236,237],{"class":150}," libtbb-dev",[88,239,226],{"class":129},[88,241,242,245,248],{"class":90,"line":117},[88,243,244],{"class":150},"    libavcodec-dev",[88,246,247],{"class":150}," libavformat-dev",[88,249,226],{"class":129},[88,251,252,255,258],{"class":90,"line":123},[88,253,254],{"class":150},"    libgstreamer-plugins-base1.0-dev",[88,256,257],{"class":150}," libgstreamer1.0-dev",[88,259,226],{"class":129},[88,261,262,265,268,271,274],{"class":90,"line":133},[88,263,264],{"class":150},"    libswscale-dev",[88,266,267],{"class":150}," libgtk-3-dev",[88,269,270],{"class":150}," libpng-dev",[88,272,273],{"class":150}," libjpeg-dev",[88,275,226],{"class":129},[88,277,278,281,284,287,290],{"class":90,"line":138},[88,279,280],{"class":150},"    libcanberra-gtk-module",[88,282,283],{"class":150}," libcanberra-gtk3-module",[88,285,286],{"class":150}," libv4l-dev",[88,288,289],{"class":150}," python3-dev",[88,291,292],{"class":150}," python3-numpy\n",[88,294,295],{"class":90,"line":144},[88,296,95],{"emptyLinePlaceholder":94},[88,298,300],{"class":90,"line":299},10,[88,301,302],{"class":101},"# RHEL红帽系系统\n",[88,304,306,308,311],{"class":90,"line":305},11,[88,307,83],{"class":108},[88,309,310],{"class":129}," -c",[88,312,313],{"class":150}," 'sudo dnf install https:\u002F\u002Fmirrors.rpmfusion.org\u002Ffree\u002Ffedora\u002Frpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https:\u002F\u002Fmirrors.rpmfusion.org\u002Fnonfree\u002Ffedora\u002Frpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'\n",[88,315,317,319,322,324,326,329,332,335,338,341,343],{"class":90,"line":316},12,[88,318,202],{"class":108},[88,320,321],{"class":150}," dnf",[88,323,208],{"class":150},[88,325,211],{"class":129},[88,327,328],{"class":150}," curl",[88,330,331],{"class":150}," gcc",[88,333,334],{"class":150}," gcc-c++",[88,336,337],{"class":150}," make",[88,339,340],{"class":150}," cmake",[88,342,223],{"class":150},[88,344,226],{"class":129},[88,346,348,351,354,357],{"class":90,"line":347},13,[88,349,350],{"class":150},"    openblas-devel",[88,352,353],{"class":150}," eigen3-devel",[88,355,356],{"class":150}," tbb-devel",[88,358,226],{"class":129},[88,360,362,365,368],{"class":90,"line":361},14,[88,363,364],{"class":150},"    ffmpeg-libs",[88,366,367],{"class":150}," ffmpeg-devel",[88,369,226],{"class":129},[88,371,373,376,379],{"class":90,"line":372},15,[88,374,375],{"class":150},"    gstreamer1-plugins-base-devel",[88,377,378],{"class":150}," gstreamer1-devel",[88,380,226],{"class":129},[88,382,384,387,390,393],{"class":90,"line":383},16,[88,385,386],{"class":150},"    gtk3-devel",[88,388,389],{"class":150}," libpng-devel",[88,391,392],{"class":150}," libjpeg-devel",[88,394,226],{"class":129},[88,396,398,401,404,407,410,413,415],{"class":90,"line":397},17,[88,399,400],{"class":150},"    libc=aanberra-gtk3",[88,402,403],{"class":150}," libcanberra-devel",[88,405,406],{"class":150}," v4l-utils",[88,408,409],{"class":150}," v4l2loopback",[88,411,412],{"class":150}," openexr-devel",[88,414,289],{"class":150},[88,416,292],{"class":150},[15,418,419],{},"下方表格是这些依赖的说明",[421,422,423,434],"table",{},[424,425,426],"thead",{},[427,428,429],"tr",{},[430,431,433],"th",{"align":432},"left","生成 OpenCV 的主要依赖项",[435,436,437,443,448,453,458,463,468,473,478,483],"tbody",{},[427,438,439],{},[440,441,442],"td",{"align":432},"名称",[427,444,445],{},[440,446,447],{"align":432},"编译系统",[427,449,450],{},[440,451,452],{"align":432},"图像库",[427,454,455],{},[440,456,457],{"align":432},"OpenBLAS",[427,459,460],{},[440,461,462],{"align":432},"Eigen3",[427,464,465],{},[440,466,467],{"align":432},"Intel TBB",[427,469,470],{},[440,471,472],{"align":432},"FFMPEG",[427,474,475],{},[440,476,477],{"align":432},"GStreamer",[427,479,480],{},[440,481,482],{"align":432},"GTK",[427,484,485],{},[440,486,487],{"align":432},"Video4Linux",[60,489,491],{"id":490},"下载opencv源码","下载OpenCV源码",[15,493,494],{},[30,495,496],{"href":496,"rel":497},"https:\u002F\u002Fgithub.com\u002Fopencv\u002Fopencv",[498],"nofollow",[15,500,501],{},[30,502,503],{"href":503,"rel":504},"https:\u002F\u002Fgithub.com\u002Fopencv\u002Fopencv_contrib",[498],[15,506,507],{},[55,508],{"alt":57,"src":509},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage26.webp",[15,511,512],{},[55,513],{"alt":57,"src":514},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage27.webp",[79,516,518],{"className":81,"code":517,"language":83,"meta":57,"style":57},"\n# 创建文件夹存放源码\nmkdir -p ooppccvv\ncd ooppccvv\n",[85,519,520,524,529,540],{"__ignoreMap":57},[88,521,522],{"class":90,"line":91},[88,523,95],{"emptyLinePlaceholder":94},[88,525,526],{"class":90,"line":98},[88,527,528],{"class":101},"# 创建文件夹存放源码\n",[88,530,531,534,537],{"class":90,"line":105},[88,532,533],{"class":108},"mkdir",[88,535,536],{"class":129}," -p",[88,538,539],{"class":150}," ooppccvv\n",[88,541,542,545],{"class":90,"line":112},[88,543,544],{"class":129},"cd",[88,546,539],{"class":150},[15,548,549],{},[55,550],{"alt":57,"src":551},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage28.webp",[79,553,555],{"className":81,"code":554,"language":83,"meta":57,"style":57},"\n# 解压源码\nunzip .\u002Fopencv-4.11.0.zip\nunzip .\u002Fopencv_contrib-4.11.0.zip\n",[85,556,557,561,566,574],{"__ignoreMap":57},[88,558,559],{"class":90,"line":91},[88,560,95],{"emptyLinePlaceholder":94},[88,562,563],{"class":90,"line":98},[88,564,565],{"class":101},"# 解压源码\n",[88,567,568,571],{"class":90,"line":105},[88,569,570],{"class":108},"unzip",[88,572,573],{"class":150}," .\u002Fopencv-4.11.0.zip\n",[88,575,576,578],{"class":90,"line":112},[88,577,570],{"class":108},[88,579,580],{"class":150}," .\u002Fopencv_contrib-4.11.0.zip\n",[15,582,583],{},[55,584],{"alt":57,"src":585},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage29.webp",[15,587,588,589],{},"确认一下 opencv 目录和 opencv-contrib 目录位于相同的父目录内，并确认这两个目录下都存在 modules 子目录：",[19,590,591],{},"(一般不用确认，只要你照着敲我上方的命令，一定没问题)",[15,593,594],{},[55,595],{"alt":57,"src":596},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage30.webp",[15,598,599],{},[55,600],{"alt":57,"src":601},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage31.webp",[60,603,605],{"id":604},"cmake编译","CMake编译",[607,608,609],"h5",{"id":609},"准备工作",[79,611,613],{"className":81,"code":612,"language":83,"meta":57,"style":57},"\n# 创建build文件夹用于装CMake生成的内容:\ncd opencv-4.11.0\nmkdir -p build && cd build\n",[85,614,615,619,624,631],{"__ignoreMap":57},[88,616,617],{"class":90,"line":91},[88,618,95],{"emptyLinePlaceholder":94},[88,620,621],{"class":90,"line":98},[88,622,623],{"class":101},"# 创建build文件夹用于装CMake生成的内容:\n",[88,625,626,628],{"class":90,"line":105},[88,627,544],{"class":129},[88,629,630],{"class":150}," opencv-4.11.0\n",[88,632,633,635,637,640,644,646],{"class":90,"line":112},[88,634,533],{"class":108},[88,636,536],{"class":129},[88,638,639],{"class":150}," build",[88,641,643],{"class":642},"sVt8B"," && ",[88,645,544],{"class":129},[88,647,648],{"class":150}," build\n",[15,650,651],{},[55,652],{"alt":57,"src":653},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage32.webp",[15,655,656],{},"OpenCV使用CMake与Makefile进行编译，编译选项较多，详见（也可以不看，不过不同版本有些CMake编译选项是不同的）：",[15,658,659],{},[30,660,661],{"href":661,"rel":662},"https:\u002F\u002Fdocs.opencv.org\u002F4.10.0\u002Fdb\u002Fd05\u002Ftutorial_config_reference.html",[498],[15,664,665,666,669,670,673],{},"下方被划掉的是在OpenCV4.11.0中已经不复存在的参数，但是可能在其他版本的OpenCV中仍有效，请自行用",[85,667,668],{},"CMake-LAH","(不推荐)命令或者",[85,671,672],{},"CMake-gui","(推荐)查看。",[421,675,676,683],{},[424,677,678],{},[427,679,680],{},[430,681,682],{"align":432},"OpenCV4.11.0 CMake常用编译选项表一览",[435,684,685,690,695,700,705,710,715,720,725,730,735,740,745,750,755,760,765,770,775,780,785,790,795,800,805,810,815,820,825,830,835,840,845,850,855],{},[427,686,687],{},[440,688,689],{"align":432},"序号",[427,691,692],{},[440,693,694],{"align":432},"1",[427,696,697],{},[440,698,699],{"align":432},"2",[427,701,702],{},[440,703,704],{"align":432},"3",[427,706,707],{},[440,708,709],{"align":432},"4",[427,711,712],{},[440,713,714],{"align":432},"5",[427,716,717],{},[440,718,719],{"align":432},"6",[427,721,722],{},[440,723,724],{"align":432},"7",[427,726,727],{},[440,728,729],{"align":432},"8",[427,731,732],{},[440,733,734],{"align":432},"9",[427,736,737],{},[440,738,739],{"align":432},"10",[427,741,742],{},[440,743,744],{"align":432},"11",[427,746,747],{},[440,748,749],{"align":432},"12",[427,751,752],{},[440,753,754],{"align":432},"13",[427,756,757],{},[440,758,759],{"align":432},"14",[427,761,762],{},[440,763,764],{"align":432},"15",[427,766,767],{},[440,768,769],{"align":432},"16",[427,771,772],{},[440,773,774],{"align":432},"17",[427,776,777],{},[440,778,779],{"align":432},"18",[427,781,782],{},[440,783,784],{"align":432},"19",[427,786,787],{},[440,788,789],{"align":432},"20",[427,791,792],{},[440,793,794],{"align":432},"21",[427,796,797],{},[440,798,799],{"align":432},"22",[427,801,802],{},[440,803,804],{"align":432},"23",[427,806,807],{},[440,808,809],{"align":432},"24",[427,811,812],{},[440,813,814],{"align":432},"25",[427,816,817],{},[440,818,819],{"align":432},"26",[427,821,822],{},[440,823,824],{"align":432},"27",[427,826,827],{},[440,828,829],{"align":432},"28",[427,831,832],{},[440,833,834],{"align":432},"29",[427,836,837],{},[440,838,839],{"align":432},"30",[427,841,842],{},[440,843,844],{"align":432},"31",[427,846,847],{},[440,848,849],{"align":432},"32",[427,851,852],{},[440,853,854],{"align":432},"33",[427,856,857],{},[440,858],{"align":432},[860,861,862],"ol",{},[863,864,865],"li",{},"查询GPU Compute Capability(CUDA_ARCH_BIN参数):",[15,867,868],{},[30,869,870],{"href":870,"rel":871},"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-gpus#collapseOne",[498],[15,873,874],{},"进入网站后，",[15,876,877],{},"GeForce代表英伟达游戏系列显卡，常见的有GTX1080，RTX3080，RTX 4080等。",[15,879,880],{},"Jetson代表工控机序列显卡。",[15,882,883],{},[55,884],{"alt":57,"src":885},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage33.webp",[15,887,888],{},"我是3060Laptop(笔记本移动端显卡，所以找右列的Notebook下方的3060)",[15,890,891],{},"如果你是3060(台式桌面端，则要找左列的3060)",[15,893,894],{},"通过图得知，我的显卡算力(GPU Compute Capability)为8.6，所以我的CMake的CUDA_ARCH_BIN参数为8.6。",[15,896,897],{},"CUDA_ARCH_PTX为BIN的最高值，我只设置了一个BIN，所以最高值就是这个8.6。(只有你要给电脑更换显卡的情况下，才要给BIN设置多个值，就需要把你要用的显卡的值全包含在BIN中，而PTX只需要BIN的最高值即可)",[15,899,900],{},[55,901],{"alt":57,"src":902},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage34.webp",[860,904,905],{"start":98},[863,906,907],{},"Python3的路径查询，请在终端中使用，检查是否都有结果生成，确保打印出的结果符合预期后再进行下面的CMake生成操作。(不需要记住路径)",[15,909,910],{},"当然你也可以用命令反馈出来的路径复制出来，这个路径就是参数的值。",[79,912,914],{"className":81,"code":913,"language":83,"meta":57,"style":57},"\n# Python3 C++接口库的路径\npython3 -c \"import sysconfig; from os.path import join; print(join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))\"\n\n# Python3 矩阵库头文件的路径\npython3 -c \"import numpy; print(numpy.get_include())\"\n\n# OpenCV 的 Python3 包安装的路径。\npython3 -c \"import sysconfig; print(sysconfig.get_path('purelib'))\"\n\n# Python3 头文件的路径\npython3 -c \"import sysconfig; print(sysconfig.get_path('include'))\"\n",[85,915,916,920,925,935,939,944,953,957,962,971,975,980],{"__ignoreMap":57},[88,917,918],{"class":90,"line":91},[88,919,95],{"emptyLinePlaceholder":94},[88,921,922],{"class":90,"line":98},[88,923,924],{"class":101},"# Python3 C++接口库的路径\n",[88,926,927,930,932],{"class":90,"line":105},[88,928,929],{"class":108},"python3",[88,931,310],{"class":129},[88,933,934],{"class":150}," \"import sysconfig; from os.path import join; print(join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))\"\n",[88,936,937],{"class":90,"line":112},[88,938,95],{"emptyLinePlaceholder":94},[88,940,941],{"class":90,"line":117},[88,942,943],{"class":101},"# Python3 矩阵库头文件的路径\n",[88,945,946,948,950],{"class":90,"line":123},[88,947,929],{"class":108},[88,949,310],{"class":129},[88,951,952],{"class":150}," \"import numpy; print(numpy.get_include())\"\n",[88,954,955],{"class":90,"line":133},[88,956,95],{"emptyLinePlaceholder":94},[88,958,959],{"class":90,"line":138},[88,960,961],{"class":101},"# OpenCV 的 Python3 包安装的路径。\n",[88,963,964,966,968],{"class":90,"line":144},[88,965,929],{"class":108},[88,967,310],{"class":129},[88,969,970],{"class":150}," \"import sysconfig; print(sysconfig.get_path('purelib'))\"\n",[88,972,973],{"class":90,"line":299},[88,974,95],{"emptyLinePlaceholder":94},[88,976,977],{"class":90,"line":305},[88,978,979],{"class":101},"# Python3 头文件的路径\n",[88,981,982,984,986],{"class":90,"line":316},[88,983,929],{"class":108},[88,985,310],{"class":129},[88,987,988],{"class":150}," \"import sysconfig; print(sysconfig.get_path('include'))\"\n",[607,990,992],{"id":991},"cmake编译两种方式选其一","CMake编译**(两种方式选其一)**",[15,994,995],{},"因为电脑配置的不同，每个电脑的硬件，软件(依赖包)等都不同，所以我能跑起来的你不一定一下就能跑成功。",[15,997,998],{},"一般很难风调雨顺，如果有问题及时去百度，谷歌，OpenCV论坛上找答案。",[15,1000,1001,1002],{},"论坛:",[30,1003,1004],{"href":1004,"rel":1005},"https:\u002F\u002Fforum.opencv.org\u002F",[498],[1007,1008,1010],"h6",{"id":1009},"cmake终端命令方式不建议更建议用gui的方式这种终端的方式容易出奇奇怪怪的问题","CMake终端命令方式(不建议，更建议用GUI的方式，这种终端的方式容易出奇奇怪怪的问题)",[79,1012,1014],{"className":81,"code":1013,"language":83,"meta":57,"style":57},"cmake .. -DCMAKE_BUILD_TYPE=Release \\\n        -DCMAKE_INSTALL_PREFIX=\u002Fusr\u002Flocal \\\n        -DBUILD_SHARED_LIBS=ON \\\n        -DOPENCV_EXTRA_MODULES_PATH=..\u002F..\u002Fopencv_contrib-4.11.0\u002Fmodules \\\n        -DOPENCV_ENABLE_NONFREE=ON \\\n        -DBUILD_TESTS=ON \\\n        -DBUILD_PERF_TESTS=ON \\\n        -DOPENCV_GENERATE_PKGCONFIG=ON \\\n        -DWITH_GTK=ON \\\n        -DWITH_CUDA=ON \\\n        -DENABLE_FAST_MATH=ON \\\n        -DCUDA_FAST_MATH=ON \\\n        -DWITH_CUBLAS=ON \\\n        -DCUDA_ARCH_BIN=\"8.6\" \\\n        -DCUDA_ARCH_PTX=\"8.6\" \\\n        -DCUDA_HOST_COMPILER=\u002Fusr\u002Fbin\u002Fgcc-13 \\\n        -DWITH_CUDNN=ON \\\n        -DOPENCV_DNN_CUDA=ON \\\n        -DWITH_IPP=ON \\\n        -DWITH_TBB=ON \\\n        -DWITH_OPENMP=ON \\\n        -DWITH_PTHREADS_PF=ON \\\n        -DOPENCV_PYTHON3_VERSION=3.12 \\\n        -DPYTHON3_EXECUTABLE=\u002Fusr\u002Fbin\u002Fpython3 \\\n        -DPYTHON3_LIBRARY=$(python3 -c \"import sysconfig; from os.path import join; print(join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))\") \\\n        -DPYTHON3_NUMPY_INCLUDE_DIRS=$(python3 -c \"import numpy; print(numpy.get_include())\") \\\n        -DPYTHON3_PACKAGES_PATH=$(python3 -c \"import sysconfig; print(sysconfig.get_path('purelib'))\") \\\n        -DPYTHON3_INCLUDE_DIR=$(python3 -c \"import sysconfig; print(sysconfig.get_path('include'))\") \\\n        -DWITH_OPENGL=ON\n\n",[85,1015,1016,1029,1036,1043,1050,1057,1064,1071,1078,1085,1092,1099,1106,1113,1123,1132,1139,1146,1154,1162,1170,1178,1186,1194,1202,1220,1237,1254,1271],{"__ignoreMap":57},[88,1017,1018,1021,1024,1027],{"class":90,"line":91},[88,1019,1020],{"class":108},"cmake",[88,1022,1023],{"class":150}," ..",[88,1025,1026],{"class":129}," -DCMAKE_BUILD_TYPE=Release",[88,1028,226],{"class":129},[88,1030,1031,1034],{"class":90,"line":98},[88,1032,1033],{"class":129},"        -DCMAKE_INSTALL_PREFIX=\u002Fusr\u002Flocal",[88,1035,226],{"class":129},[88,1037,1038,1041],{"class":90,"line":105},[88,1039,1040],{"class":129},"        -DBUILD_SHARED_LIBS=ON",[88,1042,226],{"class":129},[88,1044,1045,1048],{"class":90,"line":112},[88,1046,1047],{"class":129},"        -DOPENCV_EXTRA_MODULES_PATH=..\u002F..\u002Fopencv_contrib-4.11.0\u002Fmodules",[88,1049,226],{"class":129},[88,1051,1052,1055],{"class":90,"line":117},[88,1053,1054],{"class":129},"        -DOPENCV_ENABLE_NONFREE=ON",[88,1056,226],{"class":129},[88,1058,1059,1062],{"class":90,"line":123},[88,1060,1061],{"class":129},"        -DBUILD_TESTS=ON",[88,1063,226],{"class":129},[88,1065,1066,1069],{"class":90,"line":133},[88,1067,1068],{"class":129},"        -DBUILD_PERF_TESTS=ON",[88,1070,226],{"class":129},[88,1072,1073,1076],{"class":90,"line":138},[88,1074,1075],{"class":129},"        -DOPENCV_GENERATE_PKGCONFIG=ON",[88,1077,226],{"class":129},[88,1079,1080,1083],{"class":90,"line":144},[88,1081,1082],{"class":129},"        -DWITH_GTK=ON",[88,1084,226],{"class":129},[88,1086,1087,1090],{"class":90,"line":299},[88,1088,1089],{"class":129},"        -DWITH_CUDA=ON",[88,1091,226],{"class":129},[88,1093,1094,1097],{"class":90,"line":305},[88,1095,1096],{"class":129},"        -DENABLE_FAST_MATH=ON",[88,1098,226],{"class":129},[88,1100,1101,1104],{"class":90,"line":316},[88,1102,1103],{"class":129},"        -DCUDA_FAST_MATH=ON",[88,1105,226],{"class":129},[88,1107,1108,1111],{"class":90,"line":347},[88,1109,1110],{"class":129},"        -DWITH_CUBLAS=ON",[88,1112,226],{"class":129},[88,1114,1115,1118,1121],{"class":90,"line":361},[88,1116,1117],{"class":129},"        -DCUDA_ARCH_BIN=",[88,1119,1120],{"class":150},"\"8.6\"",[88,1122,226],{"class":129},[88,1124,1125,1128,1130],{"class":90,"line":372},[88,1126,1127],{"class":129},"        -DCUDA_ARCH_PTX=",[88,1129,1120],{"class":150},[88,1131,226],{"class":129},[88,1133,1134,1137],{"class":90,"line":383},[88,1135,1136],{"class":129},"        -DCUDA_HOST_COMPILER=\u002Fusr\u002Fbin\u002Fgcc-13",[88,1138,226],{"class":129},[88,1140,1141,1144],{"class":90,"line":397},[88,1142,1143],{"class":129},"        -DWITH_CUDNN=ON",[88,1145,226],{"class":129},[88,1147,1149,1152],{"class":90,"line":1148},18,[88,1150,1151],{"class":129},"        -DOPENCV_DNN_CUDA=ON",[88,1153,226],{"class":129},[88,1155,1157,1160],{"class":90,"line":1156},19,[88,1158,1159],{"class":129},"        -DWITH_IPP=ON",[88,1161,226],{"class":129},[88,1163,1165,1168],{"class":90,"line":1164},20,[88,1166,1167],{"class":129},"        -DWITH_TBB=ON",[88,1169,226],{"class":129},[88,1171,1173,1176],{"class":90,"line":1172},21,[88,1174,1175],{"class":129},"        -DWITH_OPENMP=ON",[88,1177,226],{"class":129},[88,1179,1181,1184],{"class":90,"line":1180},22,[88,1182,1183],{"class":129},"        -DWITH_PTHREADS_PF=ON",[88,1185,226],{"class":129},[88,1187,1189,1192],{"class":90,"line":1188},23,[88,1190,1191],{"class":129},"        -DOPENCV_PYTHON3_VERSION=3.12",[88,1193,226],{"class":129},[88,1195,1197,1200],{"class":90,"line":1196},24,[88,1198,1199],{"class":129},"        -DPYTHON3_EXECUTABLE=\u002Fusr\u002Fbin\u002Fpython3",[88,1201,226],{"class":129},[88,1203,1205,1208,1210,1213,1216,1218],{"class":90,"line":1204},25,[88,1206,1207],{"class":129},"        -DPYTHON3_LIBRARY=$(",[88,1209,929],{"class":108},[88,1211,1212],{"class":129}," -c ",[88,1214,1215],{"class":150},"\"import sysconfig; from os.path import join; print(join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))\"",[88,1217,77],{"class":129},[88,1219,226],{"class":129},[88,1221,1223,1226,1228,1230,1233,1235],{"class":90,"line":1222},26,[88,1224,1225],{"class":129},"        -DPYTHON3_NUMPY_INCLUDE_DIRS=$(",[88,1227,929],{"class":108},[88,1229,1212],{"class":129},[88,1231,1232],{"class":150},"\"import numpy; print(numpy.get_include())\"",[88,1234,77],{"class":129},[88,1236,226],{"class":129},[88,1238,1240,1243,1245,1247,1250,1252],{"class":90,"line":1239},27,[88,1241,1242],{"class":129},"        -DPYTHON3_PACKAGES_PATH=$(",[88,1244,929],{"class":108},[88,1246,1212],{"class":129},[88,1248,1249],{"class":150},"\"import sysconfig; print(sysconfig.get_path('purelib'))\"",[88,1251,77],{"class":129},[88,1253,226],{"class":129},[88,1255,1257,1260,1262,1264,1267,1269],{"class":90,"line":1256},28,[88,1258,1259],{"class":129},"        -DPYTHON3_INCLUDE_DIR=$(",[88,1261,929],{"class":108},[88,1263,1212],{"class":129},[88,1265,1266],{"class":150},"\"import sysconfig; print(sysconfig.get_path('include'))\"",[88,1268,77],{"class":129},[88,1270,226],{"class":129},[88,1272,1274],{"class":90,"line":1273},29,[88,1275,1276],{"class":129},"        -DWITH_OPENGL=ON\n",[15,1278,1279],{},[55,1280],{"alt":57,"src":1281},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage35.webp",[15,1283,1284],{},[55,1285],{"alt":57,"src":1286},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage36.webp",[15,1288,1289],{},"你可以根据你的需要，按照之前的说明来自行增减或修改这些选项。如果 cmake 命令出错，往往是缺少依赖项或配置的生成选项不正确所致，可根据提示信息来检查。如果执行成功，就可以进行编译（请看Makefiles编译部分）了：",[1007,1291,1293],{"id":1292},"cmake-gui方式推荐不过太麻烦但是问题少且更好找问题","CMake-GUI方式(推荐，不过太麻烦，但是问题少，且更好找问题)",[860,1295,1296],{},[863,1297,1298],{},"打开CMake-GUI：",[15,1300,1301],{},[55,1302],{"alt":57,"src":1303},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage37.webp",[15,1305,1306],{},"配置一下这俩路径",[15,1308,1309],{},[55,1310],{"alt":57,"src":1311},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage38.webp",[15,1313,1314],{},"点击左下角配置，选择Makefiles",[15,1316,1317],{},[55,1318],{"alt":57,"src":1319},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage39.webp",[860,1321,1322],{"start":98},[863,1323,1324],{},"配置参数",[15,1326,1327],{},"根据上方表格去挨个参数进行配置。填完所有选项后，配置完毕点Configure.",[15,1329,1330],{},"在配置参数遇到问题，请看下面的常见问题章节。",[15,1332,1333],{},[55,1334],{"alt":57,"src":1335},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage40.webp",[15,1337,1338],{},[55,1339],{"alt":57,"src":1340},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage41.webp",[15,1342,1343],{},"你可以根据你的需要，按照之前的说明来自行增减或修改这些选项。如果 cmake 命令出错，往往是缺少依赖项或配置的生成选项不正确所致，可根据提示信息来检查。如果执行成功，就可以进行编译(进行Makefiles编译)了：",[15,1345,1346],{},[55,1347],{"alt":57,"src":1348},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage42.webp",[15,1350,1351],{},[55,1352],{"alt":57,"src":1353},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage43.webp",[1007,1355,1356],{"id":1356},"常见问题",[15,1358,1359],{},"####### 无CUDA选项\n有时候CMake-GUI只会在编译后才显示某些参数(比如只有编译过WITH_CUDA才会显示CUDA相关的选项)。",[15,1361,1362],{},"所以你需要先把WITH_CUDA打上勾，再点左下角的config,这样才会出现和CUDA相关的选项，再把那些选项配置一下。",[15,1364,1365],{},[55,1366],{"alt":57,"src":1367},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage44.webp",[15,1369,1370,1371,1374],{},"####### 模组的路径与命令行方式不同\n需要注意的是，这个相对路径与直接敲CMake命令配置的参数不同，这里是",[85,1372,1373],{},"..\u002Fopencv_contrib-4.11.0\u002Fmodules","。",[15,1376,1377],{},[55,1378],{"alt":57,"src":1379},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage45.webp",[15,1381,1382],{},"####### OPENCV_PYTHON3_VERSION参数的类型错了\n在cmake-gui中不知道为何OPENCV_PYTHON3_VERSION参数的类型成了布尔型。",[15,1384,1385],{},"需要手动改为字符串型数据。",[15,1387,1388],{},[55,1389],{"alt":57,"src":1390},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage46.webp",[15,1392,1393],{},"上图就是问题所在，这里竟然是个布尔值。",[15,1395,1396],{},"先删掉该选项。",[15,1398,1399],{},[55,1400],{"alt":57,"src":1401},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage47.webp",[15,1403,1404],{},"再重新添加一个该选项。",[15,1406,1407],{},[55,1408],{"alt":57,"src":1409},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage48.webp",[79,1411,1415],{"className":1412,"code":1413,"language":1414,"meta":57,"style":57},"language-Dockerfile shiki shiki-themes github-light github-dark","\n# 查看python3版本\npython3 --version\n","Dockerfile",[85,1416,1417,1421,1426],{"__ignoreMap":57},[88,1418,1419],{"class":90,"line":91},[88,1420,95],{"emptyLinePlaceholder":94},[88,1422,1423],{"class":90,"line":98},[88,1424,1425],{"class":101},"# 查看python3版本\n",[88,1427,1428],{"class":90,"line":105},[88,1429,1430],{"class":642},"python3 --version\n",[15,1432,1433],{},[55,1434],{"alt":57,"src":1435},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage49.webp",[15,1437,1438],{},"在下面填上3.12，后面的小版本号不用填。",[15,1440,1441],{},[55,1442],{"alt":57,"src":1443},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage50.webp",[60,1445,1447],{"id":1446},"makefiles编译","Makefiles编译",[15,1449,1450],{},"后面 -j 参数的意义是使用所有 CPU 参与编译。如果启用了 CUDA ，生成过程会比较慢，请耐心等待。编译期间如果出错往往是编译器、系统库、三方库的版本兼容性问题，找问题的难度偏大。",[15,1452,1453],{},[19,1454,1455],{},"请在build目录下进行下方命令。",[79,1457,1459],{"className":81,"code":1458,"language":83,"meta":57,"style":57},"\n# 内存小于16GB\nmake all\n\n# 内存等于16GB\nmake all -j$(( $(grep -c ^processor \u002Fproc\u002Fcpuinfo) \u002F 2 ))\n\n# 内存大于32GB\nmake all -j$(grep -c ^processor \u002Fproc\u002Fcpuinfo)\n\n# 或者自行规定线程数量（比如16线程）\nmake all -j16\n",[85,1460,1461,1465,1470,1478,1482,1487,1514,1518,1523,1543,1547,1552],{"__ignoreMap":57},[88,1462,1463],{"class":90,"line":91},[88,1464,95],{"emptyLinePlaceholder":94},[88,1466,1467],{"class":90,"line":98},[88,1468,1469],{"class":101},"# 内存小于16GB\n",[88,1471,1472,1475],{"class":90,"line":105},[88,1473,1474],{"class":108},"make",[88,1476,1477],{"class":150}," all\n",[88,1479,1480],{"class":90,"line":112},[88,1481,95],{"emptyLinePlaceholder":94},[88,1483,1484],{"class":90,"line":117},[88,1485,1486],{"class":101},"# 内存等于16GB\n",[88,1488,1489,1491,1494,1497,1500,1502,1505,1508,1511],{"class":90,"line":123},[88,1490,1474],{"class":108},[88,1492,1493],{"class":150}," all",[88,1495,1496],{"class":129}," -j$(( ",[88,1498,1499],{"class":108},"$(grep",[88,1501,1212],{"class":129},[88,1503,1504],{"class":150},"^processor",[88,1506,1507],{"class":150}," \u002Fproc\u002Fcpuinfo",[88,1509,1510],{"class":129},") \u002F 2 )",[88,1512,1513],{"class":642},")\n",[88,1515,1516],{"class":90,"line":133},[88,1517,95],{"emptyLinePlaceholder":94},[88,1519,1520],{"class":90,"line":138},[88,1521,1522],{"class":101},"# 内存大于32GB\n",[88,1524,1525,1527,1529,1532,1535,1537,1539,1541],{"class":90,"line":144},[88,1526,1474],{"class":108},[88,1528,1493],{"class":150},[88,1530,1531],{"class":129}," -j$(",[88,1533,1534],{"class":108},"grep",[88,1536,1212],{"class":129},[88,1538,1504],{"class":150},[88,1540,1507],{"class":150},[88,1542,1513],{"class":129},[88,1544,1545],{"class":90,"line":299},[88,1546,95],{"emptyLinePlaceholder":94},[88,1548,1549],{"class":90,"line":305},[88,1550,1551],{"class":101},"# 或者自行规定线程数量（比如16线程）\n",[88,1553,1554,1556,1558],{"class":90,"line":316},[88,1555,1474],{"class":108},[88,1557,1493],{"class":150},[88,1559,1560],{"class":129}," -j16\n",[15,1562,1563],{},[55,1564],{"alt":57,"src":1565},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage51.webp",[15,1567,1568],{},"全核跑编译",[15,1570,1571],{},[55,1572],{"alt":57,"src":1573},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage52.webp",[15,1575,1576],{},"如图才是真编译成功，没有错误。",[15,1578,1579],{},[55,1580],{"alt":57,"src":1581},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage53.webp",[15,1583,1584],{},"生成结束后，执行以下命令进行安装：",[15,1586,1587,1590],{},[85,1588,1589],{},"$(grep -c ^processor \u002Fproc\u002Fcpuinfo)","变量为CPU线程的数量。(这样可以使CPU全力多线程进行编译)",[79,1592,1594],{"className":81,"code":1593,"language":83,"meta":57,"style":57},"\n# 内存小于16GB\nsudo make install\n\n# 内存等于16GB\nsudo make install -j$(( $(grep -c ^processor \u002Fproc\u002Fcpuinfo) \u002F 2 ))\n\n# 内存大于32GB\nsudo make install -j$(grep -c ^processor \u002Fproc\u002Fcpuinfo)\n\n# 或者自行规定线程数量（比如16线程）\nsudo make install -j16\n",[85,1595,1596,1600,1604,1613,1617,1621,1643,1647,1651,1671,1675,1679],{"__ignoreMap":57},[88,1597,1598],{"class":90,"line":91},[88,1599,95],{"emptyLinePlaceholder":94},[88,1601,1602],{"class":90,"line":98},[88,1603,1469],{"class":101},[88,1605,1606,1608,1610],{"class":90,"line":105},[88,1607,202],{"class":108},[88,1609,337],{"class":150},[88,1611,1612],{"class":150}," install\n",[88,1614,1615],{"class":90,"line":112},[88,1616,95],{"emptyLinePlaceholder":94},[88,1618,1619],{"class":90,"line":117},[88,1620,1486],{"class":101},[88,1622,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641],{"class":90,"line":123},[88,1624,202],{"class":108},[88,1626,337],{"class":150},[88,1628,208],{"class":150},[88,1630,1496],{"class":129},[88,1632,1499],{"class":108},[88,1634,1212],{"class":129},[88,1636,1504],{"class":150},[88,1638,1507],{"class":150},[88,1640,1510],{"class":129},[88,1642,1513],{"class":642},[88,1644,1645],{"class":90,"line":133},[88,1646,95],{"emptyLinePlaceholder":94},[88,1648,1649],{"class":90,"line":138},[88,1650,1522],{"class":101},[88,1652,1653,1655,1657,1659,1661,1663,1665,1667,1669],{"class":90,"line":144},[88,1654,202],{"class":108},[88,1656,337],{"class":150},[88,1658,208],{"class":150},[88,1660,1531],{"class":129},[88,1662,1534],{"class":108},[88,1664,1212],{"class":129},[88,1666,1504],{"class":150},[88,1668,1507],{"class":150},[88,1670,1513],{"class":129},[88,1672,1673],{"class":90,"line":299},[88,1674,95],{"emptyLinePlaceholder":94},[88,1676,1677],{"class":90,"line":305},[88,1678,1551],{"class":101},[88,1680,1681,1683,1685,1687],{"class":90,"line":316},[88,1682,202],{"class":108},[88,1684,337],{"class":150},[88,1686,208],{"class":150},[88,1688,1560],{"class":129},[15,1690,1691],{},[55,1692],{"alt":57,"src":1693},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage54.webp",[15,1695,1696],{},"无报错则安装成功",[15,1698,1699],{},[55,1700],{"alt":57,"src":1701},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage55.webp",[60,1703,1705],{"id":1704},"配置opencv环境变量env","配置OpenCV环境变量ENV",[860,1707,1708],{},[863,1709,1710],{},"可能需要配置一下lib的路径：",[79,1712,1714],{"className":81,"code":1713,"language":83,"meta":57,"style":57},"vim ~\u002F.bashrc\n",[85,1715,1716],{"__ignoreMap":57},[88,1717,1718,1721],{"class":90,"line":91},[88,1719,1720],{"class":108},"vim",[88,1722,1723],{"class":150}," ~\u002F.bashrc\n",[15,1725,1726],{},"在最底下加上下方的内容",[79,1728,1730],{"className":81,"code":1729,"language":83,"meta":57,"style":57},"\n# 设置 LD_LIBRARY_PATH\nexport LD_LIBRARY_PATH=\"\u002Fusr\u002Flocal\u002Flib:$LD_LIBRARY_PATH\"\n",[85,1731,1732,1736,1741],{"__ignoreMap":57},[88,1733,1734],{"class":90,"line":91},[88,1735,95],{"emptyLinePlaceholder":94},[88,1737,1738],{"class":90,"line":98},[88,1739,1740],{"class":101},"# 设置 LD_LIBRARY_PATH\n",[88,1742,1743,1746,1749,1752,1755,1758],{"class":90,"line":105},[88,1744,1745],{"class":154},"export",[88,1747,1748],{"class":642}," LD_LIBRARY_PATH",[88,1750,1751],{"class":154},"=",[88,1753,1754],{"class":150},"\"\u002Fusr\u002Flocal\u002Flib:",[88,1756,1757],{"class":642},"$LD_LIBRARY_PATH",[88,1759,1760],{"class":150},"\"\n",[860,1762,1763],{"start":98},[863,1764,1765],{},"其他的不用配置，开箱即用(可以配置一下pkg-config)，",[15,1767,1768],{},"检查是否安装成功：",[79,1770,1772],{"className":81,"code":1771,"language":83,"meta":57,"style":57},"opencv_version\n",[85,1773,1774],{"__ignoreMap":57},[88,1775,1776],{"class":90,"line":91},[88,1777,1771],{"class":108},[15,1779,1780],{},[55,1781],{"alt":57,"src":1782},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage56.webp",[60,1784,1786],{"id":1785},"测试opencv_cudacmake程序示例","测试OpenCV_CUDA(CMake程序示例)",[860,1788,1789,1796],{},[863,1790,1791,1792],{},"CMake是一定要掌握的，请看下方文档学习:",[30,1793,1795],{"href":1794},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","CMake C\u002FC++编译环境配置",[863,1797,1798],{},"如图测试完毕：",[15,1800,1801],{},[55,1802],{"alt":57,"src":1803},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage57.webp",[860,1805,1806],{"start":105},[863,1807,1808,1809,77],{},"下方是实例工程我已上传至GitHub供大家下载：(下方示例工程里的CMake模板不是最新的，可能不如新版功能齐全，不如新版各方面设计的更周到，如果想找最新版模板请看",[30,1810,1795],{"href":1794},[15,1812,1813],{},[30,1814,1815],{"href":1815,"rel":1816},"https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002Fopencv_cuda_test",[498],[79,1818,1820],{"className":81,"code":1819,"language":83,"meta":57,"style":57},"\n# 克隆源码\ngit clone https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002Fopencv_cuda_test.git\n\n# cd进工程\ncd opencv_cuda_test\n\n# cd进build目录\ncd build\n\n# 进行cmake编译\ncmake ..\n\n# 进行make编译+进行make install安装(最大线程)\nmake install -j$(grep -c ^processor \u002Fproc\u002Fcpuinfo)\n\n# 给予脚本执行权限\nsudo chmod a+x ..\u002Fscript\u002Fsetup_vinci_emis.bash\nsudo chmod a+x ..\u002Fscript\u002Fvinci_emis\nsudo chmod a+x ..\u002Finstall\u002F.setup.bash\n\n# 执行环境脚本\nsource ..\u002Fscript\u002Fsetup_vinci_emis.bash\n\n# 执行demo1二进制程序\n..\u002Fscript\u002Fvinci_emis run demo1\n",[85,1821,1822,1826,1831,1842,1846,1851,1858,1862,1867,1873,1877,1882,1889,1893,1898,1916,1920,1925,1938,1949,1960,1964,1969,1976,1980,1985],{"__ignoreMap":57},[88,1823,1824],{"class":90,"line":91},[88,1825,95],{"emptyLinePlaceholder":94},[88,1827,1828],{"class":90,"line":98},[88,1829,1830],{"class":101},"# 克隆源码\n",[88,1832,1833,1836,1839],{"class":90,"line":105},[88,1834,1835],{"class":108},"git",[88,1837,1838],{"class":150}," clone",[88,1840,1841],{"class":150}," https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002Fopencv_cuda_test.git\n",[88,1843,1844],{"class":90,"line":112},[88,1845,95],{"emptyLinePlaceholder":94},[88,1847,1848],{"class":90,"line":117},[88,1849,1850],{"class":101},"# cd进工程\n",[88,1852,1853,1855],{"class":90,"line":123},[88,1854,544],{"class":129},[88,1856,1857],{"class":150}," opencv_cuda_test\n",[88,1859,1860],{"class":90,"line":133},[88,1861,95],{"emptyLinePlaceholder":94},[88,1863,1864],{"class":90,"line":138},[88,1865,1866],{"class":101},"# cd进build目录\n",[88,1868,1869,1871],{"class":90,"line":144},[88,1870,544],{"class":129},[88,1872,648],{"class":150},[88,1874,1875],{"class":90,"line":299},[88,1876,95],{"emptyLinePlaceholder":94},[88,1878,1879],{"class":90,"line":305},[88,1880,1881],{"class":101},"# 进行cmake编译\n",[88,1883,1884,1886],{"class":90,"line":316},[88,1885,1020],{"class":108},[88,1887,1888],{"class":150}," ..\n",[88,1890,1891],{"class":90,"line":347},[88,1892,95],{"emptyLinePlaceholder":94},[88,1894,1895],{"class":90,"line":361},[88,1896,1897],{"class":101},"# 进行make编译+进行make install安装(最大线程)\n",[88,1899,1900,1902,1904,1906,1908,1910,1912,1914],{"class":90,"line":372},[88,1901,1474],{"class":108},[88,1903,208],{"class":150},[88,1905,1531],{"class":129},[88,1907,1534],{"class":108},[88,1909,1212],{"class":129},[88,1911,1504],{"class":150},[88,1913,1507],{"class":150},[88,1915,1513],{"class":129},[88,1917,1918],{"class":90,"line":383},[88,1919,95],{"emptyLinePlaceholder":94},[88,1921,1922],{"class":90,"line":397},[88,1923,1924],{"class":101},"# 给予脚本执行权限\n",[88,1926,1927,1929,1932,1935],{"class":90,"line":1148},[88,1928,202],{"class":108},[88,1930,1931],{"class":150}," chmod",[88,1933,1934],{"class":150}," a+x",[88,1936,1937],{"class":150}," ..\u002Fscript\u002Fsetup_vinci_emis.bash\n",[88,1939,1940,1942,1944,1946],{"class":90,"line":1156},[88,1941,202],{"class":108},[88,1943,1931],{"class":150},[88,1945,1934],{"class":150},[88,1947,1948],{"class":150}," ..\u002Fscript\u002Fvinci_emis\n",[88,1950,1951,1953,1955,1957],{"class":90,"line":1164},[88,1952,202],{"class":108},[88,1954,1931],{"class":150},[88,1956,1934],{"class":150},[88,1958,1959],{"class":150}," ..\u002Finstall\u002F.setup.bash\n",[88,1961,1962],{"class":90,"line":1172},[88,1963,95],{"emptyLinePlaceholder":94},[88,1965,1966],{"class":90,"line":1180},[88,1967,1968],{"class":101},"# 执行环境脚本\n",[88,1970,1971,1974],{"class":90,"line":1188},[88,1972,1973],{"class":129},"source",[88,1975,1937],{"class":150},[88,1977,1978],{"class":90,"line":1196},[88,1979,95],{"emptyLinePlaceholder":94},[88,1981,1982],{"class":90,"line":1204},[88,1983,1984],{"class":101},"# 执行demo1二进制程序\n",[88,1986,1987,1990,1993,1996],{"class":90,"line":1222},[88,1988,1989],{"class":129},".",[88,1991,1992],{"class":150},".\u002Fscript\u002Fvinci_emis",[88,1994,1995],{"class":150}," run",[88,1997,1998],{"class":150}," demo1\n",[15,2000,2001,2004,2005,2008,2009,2003,2012,2015],{},[19,2002,2003],{},"或者","直接点击",[85,2006,2007],{},"Run","，",[85,2010,2011],{},"Start Debugging",[85,2013,2014],{},"Run Without Debugging","都可以。(已经将launch.json及task.json全部配置好了)(发现bug及时call我，call我之前，请看最新CMake模板是否已经修复了该bug，若未修复，再call我)",[15,2017,2018],{},[55,2019],{"alt":57,"src":2020},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage58.webp",[15,2022,2023],{},[55,2024],{"alt":57,"src":2025},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage59.webp",[15,2027,2028],{},"测试完毕",[15,2030,2031],{},[55,2032],{"alt":57,"src":2033},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage60.webp",[60,2035,1356],{"id":2036},"常见问题-1",[607,2038,2040],{"id":2039},"cmake-jx编译遇到operator或权重weight相关问题","cmake -jx编译遇到operator!=或权重weight相关问题",[79,2042,2047],{"className":2043,"code":2045,"language":2046},[2044],"language-text","  这个问题大多发生在ubuntu20.04或者cuda12.2上，编译时添加contrib库，对应ros版本为noetic，opencv版本为4.8.0。\n\n  github上的讨论：\n","text",[85,2048,2045],{"__ignoreMap":57},[15,2050,2051],{},[30,2052,2053],{"href":2053,"rel":2054},"https:\u002F\u002Fgithub.com\u002Fros-perception\u002Fvision_opencv\u002Ftree\u002Fkinetic",[498],[15,2056,2057],{},"根据GitHub中的解决方案，将对应报错.hpp文件中的相应代码修改（若只是有一些WARNING那大可不必修改）：",[15,2059,2060,2063,2064],{},[85,2061,2062],{},"114 opencv\u002Fmodules\u002Fdnn\u002Fsrc\u002Fcuda4dnn\u002Fprimitives\u002Fnormalize_bbox.hpp 中 if (weight != 1.0)","改为 ",[85,2065,2066],{},"if (weight != static_cast\u003CT>(1.0))",[15,2068,2069],{},[85,2070,2071],{},"124 opencv\u002Fmodules\u002Fdnn\u002Fsrc\u002Fcuda4dnn\u002Fprimitives\u002Fregion.hpp 中if (nms_iou_threshold > 0)",[15,2073,2063,2074],{},[85,2075,2076],{},"if (nms_iou_threshold > static_cast\u003CT>(0))",[15,2078,2079],{},"再次编译",[79,2081,2083],{"className":81,"code":2082,"language":83,"meta":57,"style":57},"make -j16\n",[85,2084,2085],{"__ignoreMap":57},[88,2086,2087,2089],{"class":90,"line":91},[88,2088,1474],{"class":108},[88,2090,1560],{"class":129},[607,2092,2093],{"id":2093},"ros原装opencv与自己搭建的opencv_cuda冲突的问题",[15,2095,2096],{},"原因：ros自带的cv_bridge自动链接ros的opencv，而ros自带的opencv没有cuda加速，故报错。",[15,2098,2099],{},"Ubuntu允许多版本 opencv共存，不建议直接卸载opencv，可能导致相关环境异常。",[15,2101,2102],{},"解决方案：额外配置一个版本的cv_bridge进行opencv的链接",[1007,2104,2106],{"id":2105},"ros1","ROS1",[15,2108,2109],{},"解决方案：",[15,2111,2112,2113],{},"在",[30,2114,2117],{"href":2115,"rel":2116},"https:\u002F\u002Fgithub.com\u002Fros-perception\u002Fvision_opencv\u002Ftree\u002Fkinetic%E4%B8%AD%E4%B8%8B%E8%BD%BD%E5%AF%B9%E5%BA%94%E7%89%88%E6%9C%AC%E7%9A%84cv_bridge",[498],"https:\u002F\u002Fgithub.com\u002Fros-perception\u002Fvision_opencv\u002Ftree\u002Fkinetic中下载对应版本的cv_bridge",[15,2119,2120],{},"先对cv_bridge中的CmakeList.txt进行修改，OpencvDIR对应自己的opencv安装路径，并将修改包名：",[79,2122,2125],{"className":2123,"code":2124,"language":1020,"meta":57,"style":57},"language-cmake shiki shiki-themes github-light github-dark","project(cv_bridge_480)#修改为你的包名，加个版本号就可以\nset(OpenCV_DIR \"\u002Fhome\u002Fliu\u002Fopencv\u002Fopencv-4.8.0\")\nfind_package(OpenCV 4.8.0 REQUIRED\n  COMPONENTS\n    opencv_core\n    opencv_imgproc\n    opencv_imgcodecs\n  CONFIG\n)\n\n",[85,2126,2127,2138,2151,2159,2164,2169,2174,2179,2184],{"__ignoreMap":57},[88,2128,2129,2132,2135],{"class":90,"line":91},[88,2130,2131],{"class":154},"project",[88,2133,2134],{"class":642},"(cv_bridge_480)",[88,2136,2137],{"class":101},"#修改为你的包名，加个版本号就可以\n",[88,2139,2140,2143,2146,2149],{"class":90,"line":98},[88,2141,2142],{"class":154},"set",[88,2144,2145],{"class":642},"(OpenCV_DIR ",[88,2147,2148],{"class":150},"\"\u002Fhome\u002Fliu\u002Fopencv\u002Fopencv-4.8.0\"",[88,2150,1513],{"class":642},[88,2152,2153,2156],{"class":90,"line":105},[88,2154,2155],{"class":154},"find_package",[88,2157,2158],{"class":642},"(OpenCV 4.8.0 REQUIRED\n",[88,2160,2161],{"class":90,"line":112},[88,2162,2163],{"class":642},"  COMPONENTS\n",[88,2165,2166],{"class":90,"line":117},[88,2167,2168],{"class":642},"    opencv_core\n",[88,2170,2171],{"class":90,"line":123},[88,2172,2173],{"class":642},"    opencv_imgproc\n",[88,2175,2176],{"class":90,"line":133},[88,2177,2178],{"class":642},"    opencv_imgcodecs\n",[88,2180,2181],{"class":90,"line":138},[88,2182,2183],{"class":642},"  CONFIG\n",[88,2185,2186],{"class":90,"line":144},[88,2187,1513],{"class":642},[15,2189,2190],{},"修改package.xml中的包名",[79,2192,2196],{"className":2193,"code":2194,"language":2195,"meta":57,"style":57},"language-xml shiki shiki-themes github-light github-dark","  \u003Cname>cv_bridge_480\u003C\u002Fname>\n","xml",[85,2197,2198],{"__ignoreMap":57},[88,2199,2200,2203,2207,2210,2212],{"class":90,"line":91},[88,2201,2202],{"class":642},"  \u003C",[88,2204,2206],{"class":2205},"s9eBZ","name",[88,2208,2209],{"class":642},">cv_bridge_480\u003C\u002F",[88,2211,2206],{"class":2205},[88,2213,2214],{"class":642},">\n",[15,2216,2217],{},"此时将cv_bridge作为一个ros功能包进行编译，把包整体复制进你工作空间的src中进行编译",[79,2219,2221],{"className":2193,"code":2220,"language":2195,"meta":57,"style":57},"cp -rf .\u002Fcv_bridge ~\u002FYolo_Tensorrt_Demo\u002Fdemo01_test\u002Fsrc\ncatkin_make\n",[85,2222,2223,2228],{"__ignoreMap":57},[88,2224,2225],{"class":90,"line":91},[88,2226,2227],{"class":642},"cp -rf .\u002Fcv_bridge ~\u002FYolo_Tensorrt_Demo\u002Fdemo01_test\u002Fsrc\n",[88,2229,2230],{"class":90,"line":98},[88,2231,2232],{"class":642},"catkin_make\n",[15,2234,2235],{},"然后就可以将cv_bridge作为功能包使用了，在你原本的包CmakeLists中添加",[79,2237,2239],{"className":2123,"code":2238,"language":1020,"meta":57,"style":57},"find_package(cv_bridge_480)\n",[85,2240,2241],{"__ignoreMap":57},[88,2242,2243,2245],{"class":90,"line":91},[88,2244,2155],{"class":154},[88,2246,2247],{"class":642},"(cv_bridge_480)\n",[15,2249,2250],{},"package.xml:",[79,2252,2254],{"className":2193,"code":2253,"language":2195,"meta":57,"style":57},"\u003Cbuild_depend>cv_bridge_480\u003C\u002Fbuild_depend>\n\u003Cbuild_export_depend>cv_bridge_480\u003C\u002Fbuild_export_depend>\n\u003Cexec_depend>cv_bridge_480\u003C\u002Fexec_depend>\n",[85,2255,2256,2270,2283],{"__ignoreMap":57},[88,2257,2258,2261,2264,2266,2268],{"class":90,"line":91},[88,2259,2260],{"class":642},"\u003C",[88,2262,2263],{"class":2205},"build_depend",[88,2265,2209],{"class":642},[88,2267,2263],{"class":2205},[88,2269,2214],{"class":642},[88,2271,2272,2274,2277,2279,2281],{"class":90,"line":98},[88,2273,2260],{"class":642},[88,2275,2276],{"class":2205},"build_export_depend",[88,2278,2209],{"class":642},[88,2280,2276],{"class":2205},[88,2282,2214],{"class":642},[88,2284,2285,2287,2290,2292,2294],{"class":90,"line":105},[88,2286,2260],{"class":642},[88,2288,2289],{"class":2205},"exec_depend",[88,2291,2209],{"class":642},[88,2293,2289],{"class":2205},[88,2295,2214],{"class":642},[15,2297,2298],{},"到这里自定义的cv_bridge包就配好了",[15,2300,2301],{},"如果你还想在vscode中使用代码补全，添加路径一直到cv_bridge包的include就可以,我这里是另一个工作空间，都一样。",[79,2303,2307],{"className":2304,"code":2305,"language":2306,"meta":57,"style":57},"language-json shiki shiki-themes github-light github-dark","\"includePath\": [\n    \"\u002Fhome\u002Fliu\u002Fcv_bridge_ws\u002Fsrc\u002Fcv_bridge\u002Finclude\",\n    \"\u002Fhome\u002Fliu\u002Fcv_bridge_ws\u002Fsrc\u002Fcv_bridge\"\n\n]\n","json",[85,2308,2309,2317,2325,2330,2334],{"__ignoreMap":57},[88,2310,2311,2314],{"class":90,"line":91},[88,2312,2313],{"class":150},"\"includePath\"",[88,2315,2316],{"class":642},": [\n",[88,2318,2319,2322],{"class":90,"line":98},[88,2320,2321],{"class":150},"    \"\u002Fhome\u002Fliu\u002Fcv_bridge_ws\u002Fsrc\u002Fcv_bridge\u002Finclude\"",[88,2323,2324],{"class":642},",\n",[88,2326,2327],{"class":90,"line":105},[88,2328,2329],{"class":150},"    \"\u002Fhome\u002Fliu\u002Fcv_bridge_ws\u002Fsrc\u002Fcv_bridge\"\n",[88,2331,2332],{"class":90,"line":112},[88,2333,95],{"emptyLinePlaceholder":94},[88,2335,2336],{"class":90,"line":117},[88,2337,2338],{"class":642},"]\n",[1007,2340,2342],{"id":2341},"ros2","ROS2",[15,2344,2345,2346,2350],{},"详见",[30,2347,2349],{"href":2348},"\u002Fwiki\u002F2023-12-30-ros2-tutorial","ROS2机器人操作系统教程","中CV_Bridge章节.",[607,2352,2353],{"id":2353},"opencv编译爆内存的问题",[15,2355,2356],{},"解决方案：采用多核编译，一般采用make -j16 （这里16是CPU线程数，可以根据实际情况进行调整）即可解决，cpu线程越多，编译速度就越快",[1007,2358,2360],{"id":2359},"windows中","windows中：",[15,2362,2363],{},"Mingw：",[79,2365,2369],{"className":2366,"code":2367,"language":2368,"meta":57,"style":57},"language-PowerShell shiki shiki-themes github-light github-dark","mingw64-make -j16\n","PowerShell",[85,2370,2371],{"__ignoreMap":57},[88,2372,2373],{"class":90,"line":91},[88,2374,2367],{},[15,2376,2377],{},"值得注意的是，mingw并不支持windows上的opencv_contrib编译，这在configure一开始就会提示",[15,2379,2380],{},"Vs：",[15,2382,2383],{},[30,2384,2385],{"href":2385,"rel":2386},"https:\u002F\u002Fblog.csdn.net\u002Fhollyholly5\u002Farticle\u002Fdetails\u002F68062513",[498],[1007,2388,2390],{"id":2389},"linux中","linux中：",[79,2392,2394],{"className":81,"code":2393,"language":83,"meta":57,"style":57},"make -j$(grep -c ^processor \u002Fproc\u002Fcpuinfo)\n",[85,2395,2396],{"__ignoreMap":57},[88,2397,2398,2400,2402,2404,2406,2408,2410],{"class":90,"line":91},[88,2399,1474],{"class":108},[88,2401,1531],{"class":129},[88,2403,1534],{"class":108},[88,2405,1212],{"class":129},[88,2407,1504],{"class":150},[88,2409,1507],{"class":150},[88,2411,1513],{"class":129},[10,2413,48],{"id":2414},"windows",[15,2416,2345,2417],{},[30,2418,2421],{"href":2419,"rel":2420},"https:\u002F\u002Fsdutvincirobot.feishu.cn\u002Fwiki\u002FLm6XwbEJyi099ykqyV4cvirPn2f",[498],"使用OpenCV推理Yolov8模型（C++）",[2423,2424,2425],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":57,"searchDepth":98,"depth":98,"links":2427},[2428,2429],{"id":12,"depth":105,"text":13},{"id":2414,"depth":105,"text":48},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian",0,"0500","2023-12-10","wiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","zh-cn:2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","电控视觉环境搭建","md","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0500-OpenCV__CUDA环境搭建",false,null,"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian","zh-CN","zh-cn",{},{"title":5,"description":57},"Q3vQ9E7EMsQuHxVhyFK0n0USbJ2xFVFi0cTTAGuVgGs",[2449,2454,2459,2464,2469,2470,2475,2480,2485,2490],{"path":2450,"stem":2451,"title":2452,"date":2433,"chapterOrder":2453,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0100-c-c-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0100-C_C++环境搭建","C\u002FC++环境搭建","0100",{"path":2455,"stem":2456,"title":2457,"date":2433,"chapterOrder":2458,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0200-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0200-ARMKeilMDK(ARM单片机环境搭建)","ARM Keil MDK(ARM单片机环境搭建)","0200",{"path":2460,"stem":2461,"title":2462,"date":2433,"chapterOrder":2463,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0300-linux-ji-ben-pei-zhi","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0300-Linux基本配置","Linux基本配置","0300",{"path":2465,"stem":2466,"title":2467,"date":2433,"chapterOrder":2468,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0400-cmake-gong-cheng-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0400-CMake工程搭建","CMake工程搭建","0400",{"path":2430,"stem":2439,"title":5,"date":2433,"chapterOrder":2432,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},{"path":2471,"stem":2472,"title":2473,"date":2433,"chapterOrder":2474,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0600-yolo-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0600-YOLO环境搭建","YOLO环境搭建","0600",{"path":2476,"stem":2477,"title":2478,"date":2433,"chapterOrder":2479,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0700-ros-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0700-ROS环境搭建","ROS环境搭建","0700",{"path":2481,"stem":2482,"title":2483,"date":2433,"chapterOrder":2484,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0800-qt-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0800-QT环境搭建","QT环境搭建","0800",{"path":2486,"stem":2487,"title":2488,"date":2433,"chapterOrder":2489,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":2440},"\u002Fzh-cn\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0900-docker-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0900-Docker环境搭建","Docker环境搭建","0900",{"path":2436,"stem":2491,"title":2437,"date":2433,"chapterOrder":2441,"chapterDepth":2431,"docKey":2435,"docRoot":2436,"docTitle":2437,"isWikiDoc":94,"isWikiIndex":94},"wiki\u002F2023-12-10-电控视觉环境搭建\u002Findex",{"variants":2493},[2494,2497,2500,2503,2506],{"path":2495,"localeSlug":2496,"i18nKey":2439},"\u002Fen-us\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian","en-us",{"path":2498,"localeSlug":2499,"i18nKey":2439},"\u002Fzh-hant\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian","zh-hant",{"path":2501,"localeSlug":2502,"i18nKey":2439},"\u002Fzh-hk\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian","zh-hk",{"path":2504,"localeSlug":2505,"i18nKey":2439},"\u002Fzh-tw\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian","zh-tw",{"path":2430,"localeSlug":2444,"i18nKey":2439},[2495,2442,2498,2442,2501,2442,2504,2442,2430,2442],1784646792500]