ÉèÖÃLinuxϵͳÒÔÖ§³ÖÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯¿ª·¢
ÉèÖÃlinuxϵͳÒÔÖ§³ÖÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯¿ª·¢
Ëæ×Ŷ¼»á½»Í¨µÄÈÕÒæÓµ¶ÂºÍ½»Í¨Ê¹ʵÄƵ·¢£¬ÖÇÄܽ»Í¨ÏµÍ³ºÍ½»Í¨Ñ¶ºÅÓÅ»¯³ÉΪÏàʶ¾ö½»Í¨ÎÊÌâµÄÒªº¦¡£¶øÔÚÕâ¸öÐÅÏ¢»¯µÄʱ´ú£¬Linuxϵͳ×÷ΪһÖÖÎȹÌÐÔÇ¿¡¢ÎÞаÐԸߵIJÙ×÷ϵͳ£¬±»ÆÕ±éÓÃÓÚÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯µÄ¿ª·¢ÊÂÇéÖС£±¾ÎĽ«ÏÈÈÝÔõÑùÉèÖÃlinuxϵͳÒÔÖ§³ÖÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯¿ª·¢£¬²¢ÌṩһЩ´úÂëʾÀý¡£
Ò»¡¢×°ÖÃLinuxϵͳ
Òª×îÏÈÉèÖÃLinuxϵͳ£¬Ê×ÏÈÐèҪѡÔñºÏÊʵĿ¯Ðа沢¾ÙÐÐ×°Öᣳ£¼ûµÄLinux¿¯ÐаæÓÐUbuntu¡¢CentOS¡¢DebianµÈ£¬ËüÃǶ¼ÌṩÁ˽ϺõÄÎȹÌÐÔºÍÒ×ÓÃÐÔ¡£ÔÚÑ¡Ôñ¿¯Ðаæʱ£¬¿ÉÒÔƾ֤×Ô¼ºµÄÐèÇóºÍÊìϤˮƽÀ´¾ÙÐÐÑ¡Ôñ¡£×°ÖÃÀú³ÌÏà¶Ô½ÏÁ¿¼òÆÓ£¬ÕâÀï²»×÷ÏêϸÏÈÈÝ¡£
¶þ¡¢×°Öÿª·¢ÇéÐÎ
ÔÚÍê³ÉLinuxϵͳµÄ×°Öúó£¬ÐèҪװÖÃÊÊÓÃÓÚÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯¿ª·¢µÄ¿ª·¢ÇéÐΡ£³£ÓõĿª·¢ÇéÐΰüÀ¨GCC±àÒëÆ÷¡¢PythonÚ¹ÊÍÆ÷¡¢Java¿ª·¢ÇéÐεȡ£ÏÂÃæÒÔUbuntuϵͳΪÀý£¬ÏÈÈÝÔõÑù×°ÖÃÕâЩ¿ª·¢ÇéÐΡ£
×°ÖÃGCC±àÒëÆ÷
ÔÚÖÕ¶ËÖÐÔËÐÐÒÔÏÂÏÂÁîÒÔ×°ÖÃGCC±àÒëÆ÷£º
sudo apt update sudo apt install gcc
µÇ¼ºó¸´ÖÆ
×°ÖÃPythonÚ¹ÊÍÆ÷
ÔÚÖÕ¶ËÖÐÔËÐÐÒÔÏÂÏÂÁîÒÔ×°ÖÃPythonÚ¹ÊÍÆ÷£º
sudo apt update sudo apt install python3
µÇ¼ºó¸´ÖÆ
×°ÖÃJava¿ª·¢ÇéÐÎ
ÔÚÖÕ¶ËÖÐÔËÐÐÒÔÏÂÏÂÁîÒÔ×°ÖÃJava¿ª·¢ÇéÐΣº
sudo apt update sudo apt install default-jdk
µÇ¼ºó¸´ÖÆ
Èý¡¢×°ÖÃÐëÒªµÄ¿ª·¢¹¤¾ßºÍ¿â
ÔÚÍê³É¿ª·¢ÇéÐεÄ×°Öú󣬻¹ÐèҪװÖÃһЩÐëÒªµÄ¿ª·¢¹¤¾ßºÍ¿â£¬ÒԱ㿪·¢ÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯µÄÓ¦ÓóÌÐò¡£ÏÂÃæÒÔC++ÓïÑÔΪÀý£¬ÏÈÈÝÔõÑù×°ÖÃÐëÒªµÄ¿ª·¢¹¤¾ßºÍ¿â¡£
×°ÖÃOpenCV
OpenCVÊÇÒ»¸ö¿ªÔ´µÄÅÌËã»úÊÓ¾õ¿â£¬ÌṩÁ˸»ºñµÄͼÏñ´¦ÀíºÍ»úеÊÓ¾õËã·¨¡£ÔÚÖÕ¶ËÖÐÔËÐÐÒÔÏÂÏÂÁîÒÔ×°ÖÃOpenCV£º
sudo apt update sudo apt install libopencv-dev
µÇ¼ºó¸´ÖÆ
×°ÖÃBoost¿â
BoostÊÇÒ»¸ö¾ßÓÐÆձ鹦ЧµÄC++¿â£¬°üÀ¨ÁË´ó×ڵŤ¾ßºÍËã·¨¡£ÔÚÖÕ¶ËÖÐÔËÐÐÒÔÏÂÏÂÁîÒÔ×°ÖÃBoost¿â£º
sudo apt update sudo apt install libboost-all-dev
µÇ¼ºó¸´ÖÆ
ËÄ¡¢±àд´úÂëʾÀý
ÔÚÍê³É¿ª·¢¹¤¾ßºÍ¿âµÄ×°Öú󣬿ÉÒÔ±àдÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯µÄ´úÂëʾÀý¡£ÒÔÏÂÊÇÒ»¸öʹÓÃOpenCVʵÏÖͼÏñ³µÅÆʶ±ðµÄʾÀý´úÂ룺
#include <opencv2/opencv.hpp> #include <iostream> int main() { cv::Mat image = cv::imread("car.jpg", cv::IMREAD_COLOR); cv::Mat gray; cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY); cv::CascadeClassifier classifier; classifier.load("haarcascade_russian_plate_number.xml"); std::vector<cv::Rect> plates; classifier.detectMultiScale(gray, plates, 1.1, 3); for (const auto& plate : plates) { cv::rectangle(image, plate, cv::Scalar(0, 255, 0), 2); } cv::imshow("Image", image); cv::waitKey(0); return 0; }
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂëʹÓÃOpenCVµÄCascadeClassifierÀà¾ÙÐгµÅÆʶ±ð¡£Ê×ÏȶÁÈ¡Ò»ÕųµÁ¾Í¼Æ¬£¬½«Æäת»»Îª»Ò¶ÈͼÏñ¡£È»ºó¼ÓÔØÒÑѵÁ·ºÃµÄ³µÅÆ·ÖÀàÆ÷£¬²¢¶Ô»Ò¶ÈͼÏñ¾ÙÐжà±ê׼ĿµÄ¼ì²â£¬ÕÒµ½¿ÉÄܵijµÅÆÇøÓò¡£×îºó£¬ÔÚÔʼͼÏñÉÏ»æÖƳöÕÒµ½µÄ³µÅÆÇøÓò£¬²¢ÏÔʾЧ¹û¡£
Îå¡¢×ܽá
ͨ¹ýÉèÖÃlinuxϵͳÒÔÖ§³ÖÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯¿ª·¢£¬ÎÒÃÇ¿ÉÒÔ¸üÀû±ãµØ¾ÙÐÐÏà¹ØÓ¦ÓóÌÐòµÄ¿ª·¢¡£±¾ÎļòÒªÏÈÈÝÁËLinuxϵͳµÄ×°Öᢿª·¢ÇéÐεÄ×°Öá¢ÐëÒªµÄ¿ª·¢¹¤¾ßºÍ¿âµÄ×°Öã¬ÒÔ¼°Ò»¸öʹÓÃOpenCVʵÏÖͼÏñ³µÅÆʶ±ðµÄ´úÂëʾÀý¡£Ï£ÍûÕâЩÄÚÈݹØÓÚÄúÔÚÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯¿ª·¢ÖÐÆðµ½Ò»¶¨µÄ×ÊÖú¡£
ÒÔÉϾÍÊÇÉèÖÃLinuxϵͳÒÔÖ§³ÖÖÇÄܽ»Í¨ºÍ½»Í¨Ñ¶ºÅÓÅ»¯¿ª·¢µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡