├── MachineVisionSystem ├── 1.jpg ├── dst.jpg ├── dst2.jpg ├── QLabelEx.h ├── CommonHelper.cpp ├── FormFiltering.cpp ├── MachineVisionSystem.qrc ├── FormBinaryzation.cpp ├── FormCheckScratch.cpp ├── FormMorphological.cpp ├── CommonHelper.h ├── FormCheckScratch.h ├── FormColorExtraction.h ├── FormMorphological.h ├── QLabelEx.cpp ├── FormBinaryzation.h ├── MachineVisionSystem.h ├── FormFiltering.h ├── FormColorExtraction.cpp ├── main.cpp ├── MachineVisionSystem.cpp ├── FormCheckScratch.ui ├── FormColorExtraction.ui ├── MachineVisionSystem.vcxproj.filters ├── MachineVisionSystem.ui ├── MachineVisionSystem.vcxproj ├── FormFiltering.ui ├── FormMorphological.ui └── FormBinaryzation.ui ├── MachineVisionSystem.sln ├── .gitattributes └── .gitignore /MachineVisionSystem/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/1.jpg -------------------------------------------------------------------------------- /MachineVisionSystem/dst.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/dst.jpg -------------------------------------------------------------------------------- /MachineVisionSystem/dst2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/dst2.jpg -------------------------------------------------------------------------------- /MachineVisionSystem/QLabelEx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/QLabelEx.h -------------------------------------------------------------------------------- /MachineVisionSystem/CommonHelper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/CommonHelper.cpp -------------------------------------------------------------------------------- /MachineVisionSystem/FormFiltering.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/FormFiltering.cpp -------------------------------------------------------------------------------- /MachineVisionSystem/MachineVisionSystem.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormBinaryzation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/FormBinaryzation.cpp -------------------------------------------------------------------------------- /MachineVisionSystem/FormCheckScratch.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/FormCheckScratch.cpp -------------------------------------------------------------------------------- /MachineVisionSystem/FormMorphological.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uhifon/MachineVisionSystem/HEAD/MachineVisionSystem/FormMorphological.cpp -------------------------------------------------------------------------------- /MachineVisionSystem/CommonHelper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include "QLabelEx.h" 9 | 10 | using namespace std; 11 | using namespace cv; 12 | 13 | class CommonHelper 14 | { 15 | public: 16 | static void showImage(QLabel* label, Mat mat); 17 | static string selectImage(); 18 | static QImage MatImageToQt(Mat &src); 19 | }; 20 | 21 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormCheckScratch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "ui_FormCheckScratch.h" 4 | #include 5 | 6 | class FormCheckScratch :public QWidget 7 | { 8 | Q_OBJECT 9 | public: 10 | FormCheckScratch(QWidget *parent = Q_NULLPTR); 11 | 12 | private: 13 | Ui::FormCheckScratchClass ui; 14 | cv::Mat srcImage; 15 | cv::Mat dstImage; 16 | private slots: 17 | void btnReadImageClick(); 18 | void btnCheckClick(); 19 | }; 20 | 21 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormColorExtraction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "ui_FormColorExtraction.h" 4 | #include 5 | 6 | class FormColorExtraction :public QWidget 7 | { 8 | Q_OBJECT 9 | public: 10 | FormColorExtraction(QWidget *parent = Q_NULLPTR); 11 | 12 | private: 13 | Ui::FormColorExtractionClass ui; 14 | cv::Mat srcImage; 15 | cv::Mat dstImage; 16 | 17 | private slots : 18 | void btnReadImageClick(); 19 | void LabelPicInClick(); 20 | }; 21 | 22 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormMorphological.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "ui_FormMorphological.h" 4 | #include 5 | 6 | class FormMorphological :public QWidget 7 | { 8 | Q_OBJECT 9 | public: 10 | FormMorphological(QWidget *parent = Q_NULLPTR); 11 | 12 | private: 13 | Ui::FormMorphologicalClass ui; 14 | cv::Mat srcImage; 15 | cv::Mat dstImage; 16 | 17 | 18 | private slots : 19 | void btnReadImageClick(); 20 | void btnMorphologicClick(); 21 | }; 22 | 23 | -------------------------------------------------------------------------------- /MachineVisionSystem/QLabelEx.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "QLabelEx.h" 3 | 4 | QLabelEx::QLabelEx(QWidget *parent) : QLabel(parent) 5 | { 6 | } 7 | 8 | void QLabelEx::mouseReleaseEvent(QMouseEvent *ev) 9 | { 10 | emit clicked(ev); 11 | } 12 | 13 | void QLabelEx::mousePressEvent(QMouseEvent *ev) 14 | { 15 | emit pressed(ev); 16 | } 17 | 18 | void QLabelEx::mouseDoubleClickEvent(QMouseEvent *ev) 19 | { 20 | emit doubled(ev); 21 | } 22 | 23 | void QLabelEx::mouseMoveEvent(QMouseEvent *ev) 24 | { 25 | emit moved(ev); 26 | } 27 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormBinaryzation.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "ui_FormBinaryzation.h" 4 | #include 5 | 6 | 7 | class FormBinaryzation:public QWidget 8 | { 9 | Q_OBJECT 10 | public: 11 | FormBinaryzation(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::FormBinaryzationClass ui; 15 | cv::Mat srcImage; 16 | cv::Mat dstImage; 17 | private slots: 18 | void btnReadImageClick(); 19 | void btnThresholdClick(); 20 | void btnAdaptiveThresholdClick(); 21 | 22 | }; 23 | 24 | -------------------------------------------------------------------------------- /MachineVisionSystem/MachineVisionSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_MachineVisionSystem.h" 5 | 6 | 7 | class MachineVisionSystem : public QMainWindow 8 | { 9 | Q_OBJECT 10 | 11 | public: 12 | MachineVisionSystem(QWidget *parent = Q_NULLPTR); 13 | 14 | private: 15 | Ui::MachineVisionSystemClass ui; 16 | 17 | private slots: 18 | void btnBinarizeToolClick(); 19 | void btnFilteringToolClick(); 20 | void btnMorphologicalToolClick(); 21 | void btnColorExtractionToolClick(); 22 | void btnCheckScratchClick(); 23 | }; 24 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormFiltering.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "ui_FormFiltering.h" 4 | #include 5 | 6 | 7 | class FormFiltering :public QWidget 8 | { 9 | Q_OBJECT 10 | public: 11 | FormFiltering(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::FormFilteringClass ui; 15 | cv::Mat srcImage; 16 | cv::Mat dstImage; 17 | 18 | private slots : 19 | void btnReadImageClick(); 20 | void btnBoxFilterClick(); 21 | void btnBlurClick(); 22 | void btnGaussianBlurClick(); 23 | 24 | void btnMedianBlurClick(); 25 | void btnBilateralFilterClick(); 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormColorExtraction.cpp: -------------------------------------------------------------------------------- 1 | #include "FormColorExtraction.h" 2 | #include "CommonHelper.h" 3 | #include "QLabelEx.h" 4 | 5 | FormColorExtraction::FormColorExtraction(QWidget *parent) 6 | : QWidget(parent) 7 | { 8 | ui.setupUi(this); 9 | 10 | 11 | /*connect(ui.labelPicIn, SIGNAL(linkActivated(QString)), this, SLOT(LabelPicInClick(QString)));*/ 12 | } 13 | 14 | void FormColorExtraction::btnReadImageClick() 15 | { 16 | string path = CommonHelper::selectImage(); 17 | if (path=="") 18 | return; 19 | srcImage = cv::imread(path); 20 | CommonHelper::showImage(ui.labelPicIn, srcImage); 21 | } 22 | 23 | 24 | void FormColorExtraction::LabelPicInClick() 25 | { 26 | 27 | } -------------------------------------------------------------------------------- /MachineVisionSystem.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MachineVisionSystem", "MachineVisionSystem\MachineVisionSystem.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64 15 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64 16 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64 17 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /MachineVisionSystem/main.cpp: -------------------------------------------------------------------------------- 1 | #include "MachineVisionSystem.h" 2 | #include 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | qApp->setStyle(QStyleFactory::create("Fusion")); 8 | 9 | QPalette palette; 10 | palette.setColor(QPalette::Window, QColor(53, 53, 53)); 11 | palette.setColor(QPalette::WindowText, Qt::white); 12 | palette.setColor(QPalette::Base, QColor(15, 15, 15)); 13 | palette.setColor(QPalette::AlternateBase, QColor(53, 53, 53)); 14 | palette.setColor(QPalette::ToolTipBase, Qt::white); 15 | palette.setColor(QPalette::ToolTipText, Qt::white); 16 | palette.setColor(QPalette::Text, Qt::white); 17 | palette.setColor(QPalette::Button, QColor(53, 53, 53)); 18 | palette.setColor(QPalette::ButtonText, Qt::white); 19 | palette.setColor(QPalette::BrightText, Qt::red); 20 | palette.setColor(QPalette::Highlight, QColor(142, 45, 197).lighter()); 21 | palette.setColor(QPalette::HighlightedText, Qt::black); 22 | qApp->setPalette(palette); 23 | 24 | QApplication a(argc, argv); 25 | MachineVisionSystem w; 26 | w.show(); 27 | 28 | 29 | return a.exec(); 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /MachineVisionSystem/MachineVisionSystem.cpp: -------------------------------------------------------------------------------- 1 | #include "MachineVisionSystem.h" 2 | 3 | #include 4 | #include 5 | #include 6 | #include "FormBinaryzation.h" 7 | #include "FormMorphological.h" 8 | #include "FormFiltering.h" 9 | #include "FormColorExtraction.h" 10 | #include "FormCheckScratch.h" 11 | 12 | 13 | using namespace std; 14 | 15 | 16 | MachineVisionSystem::MachineVisionSystem(QWidget *parent) 17 | : QMainWindow(parent) 18 | { 19 | ui.setupUi(this); 20 | 21 | 22 | } 23 | 24 | void MachineVisionSystem::btnBinarizeToolClick() 25 | { 26 | FormBinaryzation *form = new FormBinaryzation(); 27 | form->show(); 28 | } 29 | 30 | void MachineVisionSystem::btnMorphologicalToolClick() 31 | { 32 | FormMorphological *form = new FormMorphological(); 33 | form->show(); 34 | } 35 | void MachineVisionSystem::btnFilteringToolClick() 36 | { 37 | FormFiltering *form = new FormFiltering(); 38 | form->show(); 39 | 40 | } 41 | 42 | void MachineVisionSystem::btnColorExtractionToolClick() 43 | { 44 | FormColorExtraction *form = new FormColorExtraction(); 45 | form->show(); 46 | 47 | } 48 | 49 | void MachineVisionSystem::btnCheckScratchClick() 50 | { 51 | FormCheckScratch *form = new FormCheckScratch(); 52 | form->show(); 53 | 54 | } 55 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormCheckScratch.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | FormCheckScratchClass 4 | 5 | 6 | 7 | 0 8 | 0 9 | 726 10 | 458 11 | 12 | 13 | 14 | 划痕检测 15 | 16 | 17 | 18 | 19 | 40 20 | 30 21 | 75 22 | 31 23 | 24 | 25 | 26 | 读取图像 27 | 28 | 29 | 30 | 31 | 32 | 130 33 | 30 34 | 75 35 | 31 36 | 37 | 38 | 39 | 开始检测 40 | 41 | 42 | 43 | 44 | 45 | 20 46 | 130 47 | 331 48 | 291 49 | 50 | 51 | 52 | QFrame::Box 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 360 62 | 130 63 | 331 64 | 291 65 | 66 | 67 | 68 | QFrame::Box 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | btnReadImage 79 | clicked() 80 | FormCheckScratchClass 81 | btnReadImageClick() 82 | 83 | 84 | 69 85 | 48 86 | 87 | 88 | 74 89 | 86 90 | 91 | 92 | 93 | 94 | btnCheck 95 | clicked() 96 | FormCheckScratchClass 97 | btnCheckClick() 98 | 99 | 100 | 181 101 | 53 102 | 103 | 104 | 182 105 | 95 106 | 107 | 108 | 109 | 110 | 111 | btnReadImageClick() 112 | btnCheckClick() 113 | 114 | 115 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormColorExtraction.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | FormColorExtractionClass 4 | 5 | 6 | 7 | 0 8 | 0 9 | 738 10 | 486 11 | 12 | 13 | 14 | 颜色提取 15 | 16 | 17 | 18 | 19 | 20 20 | 30 21 | 75 22 | 31 23 | 24 | 25 | 26 | 读取图像 27 | 28 | 29 | 30 | 31 | 32 | 150 33 | 100 34 | 100 35 | 20 36 | 37 | 38 | 39 | 原始图 40 | 41 | 42 | 43 | 44 | 45 | 30 46 | 130 47 | 300 48 | 250 49 | 50 | 51 | 52 | QFrame::Box 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 380 62 | 130 63 | 81 64 | 61 65 | 66 | 67 | 68 | QFrame::Box 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 110 78 | 30 79 | 75 80 | 31 81 | 82 | 83 | 84 | 颜色提取 85 | 86 | 87 | 88 | 89 | 90 | 91 | btnReadImage 92 | clicked() 93 | FormColorExtractionClass 94 | btnReadImageClick() 95 | 96 | 97 | 58 98 | 59 99 | 100 | 101 | 55 102 | 89 103 | 104 | 105 | 106 | 107 | btnColorExtraction 108 | clicked() 109 | FormColorExtractionClass 110 | btnColorExtractionClick() 111 | 112 | 113 | 150 114 | 57 115 | 116 | 117 | 152 118 | 84 119 | 120 | 121 | 122 | 123 | 124 | btnReadImageClick() 125 | btnColorExtractionClick() 126 | 127 | 128 | -------------------------------------------------------------------------------- /MachineVisionSystem/MachineVisionSystem.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} 14 | qrc;* 15 | false 16 | 17 | 18 | {99349809-55BA-4b9d-BF79-8FDBB0286EB3} 19 | ui 20 | 21 | 22 | {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} 23 | qrc;* 24 | false 25 | 26 | 27 | 28 | 29 | Source Files 30 | 31 | 32 | Source Files 33 | 34 | 35 | Source Files 36 | 37 | 38 | Source Files 39 | 40 | 41 | Source Files 42 | 43 | 44 | Source Files 45 | 46 | 47 | Source Files 48 | 49 | 50 | Source Files 51 | 52 | 53 | Source Files 54 | 55 | 56 | 57 | 58 | Header Files 59 | 60 | 61 | Header Files 62 | 63 | 64 | Header Files 65 | 66 | 67 | Header Files 68 | 69 | 70 | Header Files 71 | 72 | 73 | Header Files 74 | 75 | 76 | Header Files 77 | 78 | 79 | 80 | 81 | Form Files 82 | 83 | 84 | Form Files 85 | 86 | 87 | Form Files 88 | 89 | 90 | Form Files 91 | 92 | 93 | Form Files 94 | 95 | 96 | Form Files 97 | 98 | 99 | 100 | 101 | Resource Files 102 | 103 | 104 | 105 | 106 | Header Files 107 | 108 | 109 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | [Xx]64/ 19 | [Xx]86/ 20 | [Bb]uild/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | artifacts/ 46 | 47 | *_i.c 48 | *_p.c 49 | *_i.h 50 | *.ilk 51 | *.meta 52 | *.obj 53 | *.pch 54 | *.pdb 55 | *.pgc 56 | *.pgd 57 | *.rsp 58 | *.sbr 59 | *.tlb 60 | *.tli 61 | *.tlh 62 | *.tmp 63 | *.tmp_proj 64 | *.log 65 | *.vspscc 66 | *.vssscc 67 | .builds 68 | *.pidb 69 | *.svclog 70 | *.scc 71 | 72 | # Chutzpah Test files 73 | _Chutzpah* 74 | 75 | # Visual C++ cache files 76 | ipch/ 77 | *.aps 78 | *.ncb 79 | *.opendb 80 | *.opensdf 81 | *.sdf 82 | *.cachefile 83 | *.VC.db 84 | 85 | # Visual Studio profiler 86 | *.psess 87 | *.vsp 88 | *.vspx 89 | *.sap 90 | 91 | # TFS 2012 Local Workspace 92 | $tf/ 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | *.DotSettings.user 101 | 102 | # JustCode is a .NET coding add-in 103 | .JustCode 104 | 105 | # TeamCity is a build add-in 106 | _TeamCity* 107 | 108 | # DotCover is a Code Coverage Tool 109 | *.dotCover 110 | 111 | # NCrunch 112 | _NCrunch_* 113 | .*crunch*.local.xml 114 | nCrunchTemp_* 115 | 116 | # MightyMoose 117 | *.mm.* 118 | AutoTest.Net/ 119 | 120 | # Web workbench (sass) 121 | .sass-cache/ 122 | 123 | # Installshield output folder 124 | [Ee]xpress/ 125 | 126 | # DocProject is a documentation generator add-in 127 | DocProject/buildhelp/ 128 | DocProject/Help/*.HxT 129 | DocProject/Help/*.HxC 130 | DocProject/Help/*.hhc 131 | DocProject/Help/*.hhk 132 | DocProject/Help/*.hhp 133 | DocProject/Help/Html2 134 | DocProject/Help/html 135 | 136 | # Click-Once directory 137 | publish/ 138 | 139 | # Publish Web Output 140 | *.[Pp]ublish.xml 141 | *.azurePubxml 142 | 143 | # TODO: Un-comment the next line if you do not want to checkin 144 | # your web deploy settings because they may include unencrypted 145 | # passwords 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # NuGet Packages 150 | *.nupkg 151 | # The packages folder can be ignored because of Package Restore 152 | **/packages/* 153 | # except build/, which is used as an MSBuild target. 154 | !**/packages/build/ 155 | # Uncomment if necessary however generally it will be regenerated when needed 156 | #!**/packages/repositories.config 157 | # NuGet v3's project.json files produces more ignoreable files 158 | *.nuget.props 159 | *.nuget.targets 160 | 161 | # Microsoft Azure Build Output 162 | csx/ 163 | *.build.csdef 164 | 165 | # Microsoft Azure Emulator 166 | ecf/ 167 | rcf/ 168 | 169 | # Windows Store app package directory 170 | AppPackages/ 171 | BundleArtifacts/ 172 | 173 | # Visual Studio cache files 174 | # files ending in .cache can be ignored 175 | *.[Cc]ache 176 | # but keep track of directories ending in .cache 177 | !*.[Cc]ache/ 178 | 179 | # Others 180 | ClientBin/ 181 | [Ss]tyle[Cc]op.* 182 | ~$* 183 | *~ 184 | *.dbmdl 185 | *.dbproj.schemaview 186 | *.pfx 187 | *.publishsettings 188 | node_modules/ 189 | orleans.codegen.cs 190 | 191 | # RIA/Silverlight projects 192 | Generated_Code/ 193 | 194 | # Backup & report files from converting an old project file 195 | # to a newer Visual Studio version. Backup files are not needed, 196 | # because we have git ;-) 197 | _UpgradeReport_Files/ 198 | Backup*/ 199 | UpgradeLog*.XML 200 | UpgradeLog*.htm 201 | 202 | # SQL Server files 203 | *.mdf 204 | *.ldf 205 | 206 | # Business Intelligence projects 207 | *.rdl.data 208 | *.bim.layout 209 | *.bim_*.settings 210 | 211 | # Microsoft Fakes 212 | FakesAssemblies/ 213 | 214 | # GhostDoc plugin setting file 215 | *.GhostDoc.xml 216 | 217 | # Node.js Tools for Visual Studio 218 | .ntvs_analysis.dat 219 | 220 | # Visual Studio 6 build log 221 | *.plg 222 | 223 | # Visual Studio 6 workspace options file 224 | *.opt 225 | 226 | # Visual Studio LightSwitch build output 227 | **/*.HTMLClient/GeneratedArtifacts 228 | **/*.DesktopClient/GeneratedArtifacts 229 | **/*.DesktopClient/ModelManifest.xml 230 | **/*.Server/GeneratedArtifacts 231 | **/*.Server/ModelManifest.xml 232 | _Pvt_Extensions 233 | 234 | # LightSwitch generated files 235 | GeneratedArtifacts/ 236 | ModelManifest.xml 237 | 238 | # Paket dependency manager 239 | .paket/paket.exe 240 | 241 | # FAKE - F# Make 242 | .fake/ 243 | -------------------------------------------------------------------------------- /MachineVisionSystem/MachineVisionSystem.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MachineVisionSystemClass 4 | 5 | 6 | 7 | 0 8 | 0 9 | 768 10 | 483 11 | 12 | 13 | 14 | MachineVisionSystem 15 | 16 | 17 | 18 | 19 | 20 | 130 21 | 60 22 | 111 23 | 41 24 | 25 | 26 | 27 | 二值化 28 | 29 | 30 | 31 | 32 | 33 | 130 34 | 110 35 | 111 36 | 41 37 | 38 | 39 | 40 | 形态学处理 41 | 42 | 43 | 44 | 45 | 46 | 160 47 | 30 48 | 54 49 | 12 50 | 51 | 52 | 53 | 预处理 54 | 55 | 56 | 57 | 58 | 59 | 40 60 | 30 61 | 54 62 | 12 63 | 64 | 65 | 66 | 基础处理 67 | 68 | 69 | 70 | 71 | 72 | 130 73 | 160 74 | 111 75 | 41 76 | 77 | 78 | 79 | 滤波 80 | 81 | 82 | 83 | 84 | 85 | 10 86 | 60 87 | 111 88 | 41 89 | 90 | 91 | 92 | 颜色提取 93 | 94 | 95 | 96 | 97 | 98 | 570 99 | 160 100 | 111 101 | 41 102 | 103 | 104 | 105 | 划痕检测 106 | 107 | 108 | 109 | 110 | 111 | 600 112 | 30 113 | 54 114 | 12 115 | 116 | 117 | 118 | 实操项目 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | btnBinarizeTool 130 | clicked() 131 | MachineVisionSystemClass 132 | btnBinarizeToolClick() 133 | 134 | 135 | 92 136 | 44 137 | 138 | 139 | 110 140 | 164 141 | 142 | 143 | 144 | 145 | btnMorphologicalTool 146 | clicked() 147 | MachineVisionSystemClass 148 | btnMorphologicalToolClick() 149 | 150 | 151 | 224 152 | 63 153 | 154 | 155 | 227 156 | 116 157 | 158 | 159 | 160 | 161 | btnFilteringTool 162 | clicked() 163 | MachineVisionSystemClass 164 | btnFilteringToolClick() 165 | 166 | 167 | 194 168 | 190 169 | 170 | 171 | 185 172 | 215 173 | 174 | 175 | 176 | 177 | btnColorExtractionTool 178 | clicked() 179 | MachineVisionSystemClass 180 | btnColorExtractionToolClick() 181 | 182 | 183 | 65 184 | 98 185 | 186 | 187 | 65 188 | 123 189 | 190 | 191 | 192 | 193 | btnCheckScratch 194 | clicked() 195 | MachineVisionSystemClass 196 | btnCheckScratchClick() 197 | 198 | 199 | 632 200 | 193 201 | 202 | 203 | 608 204 | -29 205 | 206 | 207 | 208 | 209 | 210 | btnBinarizeToolClick() 211 | btnMorphologicalToolClick() 212 | btnFilteringToolClick() 213 | btnColorExtractionToolClick() 214 | btnCheckScratchClick() 215 | 216 | 217 | -------------------------------------------------------------------------------- /MachineVisionSystem/MachineVisionSystem.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | x64 7 | 8 | 9 | Release 10 | x64 11 | 12 | 13 | 14 | {B12702AD-ABFB-343A-A199-8E24837244A3} 15 | QtVS_v301 16 | 10.0.18362.0 17 | 18 | 19 | 20 | Application 21 | v140 22 | 23 | 24 | Application 25 | v140 26 | 27 | 28 | 29 | $(MSBuildProjectDirectory)\QtMsBuild 30 | 31 | 32 | $(SolutionDir)$(Platform)\$(Configuration)\ 33 | D:\software\OPENCV\Opencv\opencv\build\include;D:\software\OPENCV\Opencv\opencv\build\include\opencv2;$(IncludePath) 34 | D:\software\OPENCV\Opencv\opencv\build\x64\vc14\lib;$(LibraryPath) 35 | 36 | 37 | $(SolutionDir)$(Platform)\$(Configuration)\ 38 | D:\software\OPENCV\Opencv\opencv\build\include;D:\software\OPENCV\Opencv\opencv\build\include\opencv2;$(IncludePath) 39 | D:\software\OPENCV\Opencv\opencv\build\x64\vc14\lib;$(LibraryPath) 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | msvc2015_64 58 | core;gui;widgets 59 | 60 | 61 | msvc2015_64 62 | core;gui;widgets 63 | 64 | 65 | 66 | 67 | 68 | 69 | true 70 | Disabled 71 | ProgramDatabase 72 | MultiThreadedDebugDLL 73 | true 74 | D:\安装包\OPENCV\opencv\build\include;%(AdditionalIncludeDirectories) 75 | 76 | 77 | Windows 78 | $(OutDir)\$(ProjectName).exe 79 | true 80 | opencv_world440d.lib;%(AdditionalDependencies) 81 | D:\安装包\OPENCV\opencv\build\x64\vc15\lib;%(AdditionalLibraryDirectories) 82 | 83 | 84 | 85 | 86 | true 87 | 88 | MultiThreadedDLL 89 | true 90 | 91 | 92 | Windows 93 | $(OutDir)\$(ProjectName).exe 94 | false 95 | opencv_world440.lib;%(AdditionalDependencies) 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormFiltering.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | FormFilteringClass 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 477 11 | 12 | 13 | 14 | 图像滤波 15 | 16 | 17 | 18 | 19 | 20 20 | 50 21 | 75 22 | 31 23 | 24 | 25 | 26 | 读取图像 27 | 28 | 29 | 30 | 31 | 32 | 120 33 | 10 34 | 271 35 | 111 36 | 37 | 38 | 39 | 线性滤波 40 | 41 | 42 | 43 | 44 | 20 45 | 40 46 | 75 47 | 31 48 | 49 | 50 | 51 | 方框滤波 52 | 53 | 54 | 55 | 56 | 57 | 100 58 | 40 59 | 75 60 | 31 61 | 62 | 63 | 64 | 均值滤波 65 | 66 | 67 | 68 | 69 | 70 | 180 71 | 40 72 | 75 73 | 31 74 | 75 | 76 | 77 | 高斯滤波 78 | 79 | 80 | 81 | 82 | 83 | 84 | 440 85 | 10 86 | 261 87 | 111 88 | 89 | 90 | 91 | 线性滤波 92 | 93 | 94 | 95 | 96 | 130 97 | 40 98 | 75 99 | 31 100 | 101 | 102 | 103 | 双边滤波 104 | 105 | 106 | 107 | 108 | 109 | 50 110 | 40 111 | 75 112 | 31 113 | 114 | 115 | 116 | 中值滤波 117 | 118 | 119 | 120 | 121 | 122 | 123 | 170 124 | 160 125 | 100 126 | 20 127 | 128 | 129 | 130 | 原始图 131 | 132 | 133 | 134 | 135 | 136 | 50 137 | 190 138 | 300 139 | 250 140 | 141 | 142 | 143 | QFrame::Box 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 530 153 | 160 154 | 100 155 | 20 156 | 157 | 158 | 159 | 处理后图 160 | 161 | 162 | 163 | 164 | 165 | 400 166 | 190 167 | 300 168 | 250 169 | 170 | 171 | 172 | QFrame::Box 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | btnBoxFilter 183 | clicked() 184 | FormFilteringClass 185 | btnBoxFilterClick() 186 | 187 | 188 | 176 189 | 68 190 | 191 | 192 | 173 193 | 137 194 | 195 | 196 | 197 | 198 | btnReadImage 199 | clicked() 200 | FormFilteringClass 201 | btnReadImageClick() 202 | 203 | 204 | 72 205 | 68 206 | 207 | 208 | 57 209 | 111 210 | 211 | 212 | 213 | 214 | btnGaussianBlur 215 | clicked() 216 | FormFilteringClass 217 | btnGaussianBlurClick() 218 | 219 | 220 | 334 221 | 76 222 | 223 | 224 | 332 225 | 128 226 | 227 | 228 | 229 | 230 | btnBlur 231 | clicked() 232 | FormFilteringClass 233 | btnBlurClick() 234 | 235 | 236 | 257 237 | 78 238 | 239 | 240 | 255 241 | 152 242 | 243 | 244 | 245 | 246 | btnMedianBlur 247 | clicked() 248 | FormFilteringClass 249 | btnMedianBlurClick() 250 | 251 | 252 | 520 253 | 77 254 | 255 | 256 | 516 257 | 129 258 | 259 | 260 | 261 | 262 | btnBilateralFilter 263 | clicked() 264 | FormFilteringClass 265 | btnBilateralFilterClick() 266 | 267 | 268 | 607 269 | 79 270 | 271 | 272 | 607 273 | 136 274 | 275 | 276 | 277 | 278 | 279 | btnBoxFilterClick() 280 | btnBlurClick() 281 | btnReadImageClick() 282 | btnGaussianBlurClick() 283 | btnMedianBlurClick() 284 | btnBilateralFilterClick() 285 | 286 | 287 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormMorphological.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | FormMorphologicalClass 4 | 5 | 6 | 7 | 0 8 | 0 9 | 660 10 | 433 11 | 12 | 13 | 14 | 形态学处理 15 | 16 | 17 | 18 | 19 | 10 20 | 30 21 | 81 22 | 31 23 | 24 | 25 | 26 | 读取图像 27 | 28 | 29 | 30 | 31 | 32 | 210 33 | 30 34 | 101 35 | 22 36 | 37 | 38 | 39 | 40 | 腐蚀Erode 41 | 42 | 43 | 44 | 45 | 膨胀Dilate 46 | 47 | 48 | 49 | 50 | 开运算Open 51 | 52 | 53 | 54 | 55 | 闭运算Close 56 | 57 | 58 | 59 | 60 | 梯度Gradient 61 | 62 | 63 | 64 | 65 | 顶帽TopHat 66 | 67 | 68 | 69 | 70 | 黑帽BlackHat 71 | 72 | 73 | 74 | 75 | 击中击不中HitMiss 76 | 77 | 78 | 79 | 80 | 81 | 82 | 130 83 | 33 84 | 101 85 | 16 86 | 87 | 88 | 89 | 形态学运算: 90 | 91 | 92 | 93 | 94 | 95 | 570 96 | 40 97 | 81 98 | 31 99 | 100 | 101 | 102 | 处理 103 | 104 | 105 | 106 | 107 | 108 | 20 109 | 130 110 | 300 111 | 250 112 | 113 | 114 | 115 | QFrame::Box 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 140 125 | 100 126 | 41 127 | 16 128 | 129 | 130 | 131 | 原图 132 | 133 | 134 | 135 | 136 | 137 | 340 138 | 130 139 | 300 140 | 250 141 | 142 | 143 | 144 | QFrame::Box 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 470 154 | 100 155 | 41 156 | 16 157 | 158 | 159 | 160 | 结果图 161 | 162 | 163 | 164 | 165 | 166 | 330 167 | 30 168 | 31 169 | 16 170 | 171 | 172 | 173 | 内核: 174 | 175 | 176 | 177 | 178 | 179 | 370 180 | 28 181 | 41 182 | 20 183 | 184 | 185 | 186 | 3 187 | 188 | 189 | 190 | 191 | 192 | 430 193 | 30 194 | 81 195 | 16 196 | 197 | 198 | 199 | 内迭代次数: 200 | 201 | 202 | 203 | 204 | 205 | 505 206 | 27 207 | 41 208 | 20 209 | 210 | 211 | 212 | 1 213 | 214 | 215 | 216 | 217 | 218 | 386 219 | 63 220 | 31 221 | 16 222 | 223 | 224 | 225 | 锚点: 226 | 227 | 228 | 229 | 230 | 231 | 426 232 | 60 233 | 41 234 | 20 235 | 236 | 237 | 238 | -1 239 | 240 | 241 | 242 | 243 | 244 | 478 245 | 60 246 | 41 247 | 20 248 | 249 | 250 | 251 | -1 252 | 253 | 254 | 255 | 256 | 257 | 470 258 | 65 259 | 31 260 | 16 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 140 271 | 70 272 | 54 273 | 12 274 | 275 | 276 | 277 | 边界模式: 278 | 279 | 280 | 281 | 282 | 283 | 210 284 | 60 285 | 151 286 | 22 287 | 288 | 289 | 290 | 291 | BORDER_CONSTANT 292 | 293 | 294 | 295 | 296 | BORDER_REPLICATE 297 | 298 | 299 | 300 | 301 | BORDER_REFLECT 302 | 303 | 304 | 305 | 306 | BORDER_WRAP 307 | 308 | 309 | 310 | 311 | BORDER_REFLECT_101 312 | 313 | 314 | 315 | 316 | BORDER_TRANSPARENT 317 | 318 | 319 | 320 | 321 | BORDER_REFLECT101 322 | 323 | 324 | 325 | 326 | BORDER_DEFAULT 327 | 328 | 329 | 330 | 331 | BORDER_ISOLATED 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | btnReadImage 340 | clicked() 341 | FormMorphologicalClass 342 | btnReadImageClick() 343 | 344 | 345 | 52 346 | 58 347 | 348 | 349 | 52 350 | 84 351 | 352 | 353 | 354 | 355 | btnMorphologic 356 | clicked() 357 | FormMorphologicalClass 358 | btnMorphologicClick() 359 | 360 | 361 | 600 362 | 63 363 | 364 | 365 | 607 366 | 102 367 | 368 | 369 | 370 | 371 | 372 | btnReadImageClick() 373 | btnMorphologicClick() 374 | 375 | 376 | -------------------------------------------------------------------------------- /MachineVisionSystem/FormBinaryzation.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | FormBinaryzationClass 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 460 11 | 12 | 13 | 14 | 二值化 15 | 16 | 17 | 18 | 19 | 10 20 | 10 21 | 75 22 | 31 23 | 24 | 25 | 26 | 读取图像 27 | 28 | 29 | 30 | 31 | 32 | 660 33 | 50 34 | 101 35 | 31 36 | 37 | 38 | 39 | 二值化 40 | 41 | 42 | 43 | 44 | 45 | 190 46 | 64 47 | 54 48 | 12 49 | 50 | 51 | 52 | 阈值: 53 | 54 | 55 | 56 | 57 | 58 | 310 59 | 64 60 | 54 61 | 12 62 | 63 | 64 | 65 | 最大阈值: 66 | 67 | 68 | 69 | 70 | 71 | 511 72 | 56 73 | 131 74 | 22 75 | 76 | 77 | 78 | 79 | THRESH_BINARY 80 | 81 | 82 | 83 | 84 | THRESH_BINARY_INV 85 | 86 | 87 | 88 | 89 | THRESH_TRUNC 90 | 91 | 92 | 93 | 94 | THRESH_TOZERO 95 | 96 | 97 | 98 | 99 | THRESH_TOZERO_INV 100 | 101 | 102 | 103 | 104 | THRESH_MASK 105 | 106 | 107 | 108 | 109 | THRESH_OTSU 110 | 111 | 112 | 113 | 114 | THRESH_TRIANGLE 115 | 116 | 117 | 118 | 119 | 120 | 121 | 450 122 | 63 123 | 54 124 | 12 125 | 126 | 127 | 128 | 阈值类型: 129 | 130 | 131 | 132 | 133 | 134 | 230 135 | 60 136 | 51 137 | 21 138 | 139 | 140 | 141 | 255 142 | 143 | 144 | 100 145 | 146 | 147 | 148 | 149 | 150 | 370 151 | 60 152 | 51 153 | 21 154 | 155 | 156 | 157 | 1 158 | 159 | 160 | 255 161 | 162 | 163 | 255 164 | 165 | 166 | 167 | 168 | 169 | 660 170 | 92 171 | 101 172 | 31 173 | 174 | 175 | 176 | 自适应二值化 177 | 178 | 179 | 180 | 181 | 182 | 110 183 | 100 184 | 171 185 | 22 186 | 187 | 188 | 189 | 190 | ADAPTIVE_THRESH_MEAN_C 191 | 192 | 193 | 194 | 195 | ADAPTIVE_THRESH_GAUSSIAN_C 196 | 197 | 198 | 199 | 200 | 201 | 202 | 10 203 | 100 204 | 100 205 | 20 206 | 207 | 208 | 209 | 自适应阈值算法: 210 | 211 | 212 | 213 | 214 | 215 | 511 216 | 97 217 | 131 218 | 22 219 | 220 | 221 | 222 | 223 | THRESH_BINARY 224 | 225 | 226 | 227 | 228 | THRESH_BINARY_INV 229 | 230 | 231 | 232 | 233 | 234 | 235 | 450 236 | 104 237 | 54 238 | 12 239 | 240 | 241 | 242 | 阈值类型: 243 | 244 | 245 | 246 | 247 | 248 | 310 249 | 104 250 | 54 251 | 12 252 | 253 | 254 | 255 | 最大阈值: 256 | 257 | 258 | 259 | 260 | 261 | 370 262 | 100 263 | 51 264 | 21 265 | 266 | 267 | 268 | 1 269 | 270 | 271 | 255 272 | 273 | 274 | 255 275 | 276 | 277 | 278 | 279 | 280 | 120 281 | 200 282 | 100 283 | 20 284 | 285 | 286 | 287 | 原始图 288 | 289 | 290 | 291 | 292 | 293 | 380 294 | 200 295 | 100 296 | 20 297 | 298 | 299 | 300 | 二值化 301 | 302 | 303 | 304 | 305 | 306 | 620 307 | 200 308 | 100 309 | 20 310 | 311 | 312 | 313 | 自适应二值化 314 | 315 | 316 | 317 | 318 | 319 | 300 320 | 140 321 | 100 322 | 20 323 | 324 | 325 | 326 | 邻域块大小: 327 | 328 | 329 | 330 | 331 | 332 | 430 333 | 140 334 | 100 335 | 20 336 | 337 | 338 | 339 | 偏移值调整量: 340 | 341 | 342 | 343 | 344 | 345 | 370 346 | 140 347 | 51 348 | 20 349 | 350 | 351 | 352 | 5 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 510 362 | 140 363 | 51 364 | 20 365 | 366 | 367 | 368 | 0 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 280 378 | 230 379 | 250 380 | 200 381 | 382 | 383 | 384 | QFrame::Box 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 20 394 | 230 395 | 250 396 | 200 397 | 398 | 399 | 400 | QFrame::Box 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 540 410 | 230 411 | 250 412 | 200 413 | 414 | 415 | 416 | QFrame::Box 417 | 418 | 419 | 420 | 421 | 422 | labelPicOut1 423 | labelPicIn 424 | labelPicOut2 425 | label 426 | btnReadImage 427 | btnThreshold 428 | label_2 429 | cmbThresholdType 430 | label_3 431 | spinBoxThresh 432 | spinBoxMaxThresh 433 | btnAdaptiveThreshold 434 | cmbAdaptiveThresholdType 435 | label_4 436 | cmbThresholdType_2 437 | label_5 438 | label_6 439 | spinBoxMaxThresh_2 440 | label_7 441 | label_8 442 | label_9 443 | label_10 444 | label_11 445 | lineEditBolckSize 446 | lineEditConst 447 | 448 | 449 | 450 | 451 | btnReadImage 452 | clicked() 453 | FormBinaryzationClass 454 | btnReadImageClick() 455 | 456 | 457 | 67 458 | 49 459 | 460 | 461 | 67 462 | 137 463 | 464 | 465 | 466 | 467 | btnThreshold 468 | clicked() 469 | FormBinaryzationClass 470 | btnThresholdClick() 471 | 472 | 473 | 150 474 | 38 475 | 476 | 477 | 145 478 | 115 479 | 480 | 481 | 482 | 483 | btnAdaptiveThreshold 484 | clicked() 485 | FormBinaryzationClass 486 | btnAdaptiveThresholdClick() 487 | 488 | 489 | 738 490 | 123 491 | 492 | 493 | 730 494 | 194 495 | 496 | 497 | 498 | 499 | 500 | btnThresholdClick() 501 | btnReadImageClick() 502 | btnAdaptiveThresholdClick() 503 | 504 | 505 | --------------------------------------------------------------------------------