├── Debug
├── GoruntuIslemeProjeleri.exe
├── GoruntuIslemeProjeleri.exe.metagen
└── GoruntuIslemeProjeleri.pdb
├── GoruntuIslemeProjeleri.sln
├── GoruntuIslemeProjeleri
├── Canny.cpp
├── Canny.h
├── Canny.resx
├── Debug
│ ├── .NETFramework,Version=v4.6.1.AssemblyAttributes.asm
│ ├── .NETFramework,Version=v4.6.1.AssemblyAttributes.obj
│ ├── Canny.obj
│ ├── EqualHistogram.obj
│ ├── GoruntuI.C8D72D1C.tlog
│ │ ├── CL.command.1.tlog
│ │ ├── CL.read.1.tlog
│ │ ├── CL.write.1.tlog
│ │ ├── CLR.DLL.bi
│ │ ├── CLUI.DLL.bi
│ │ ├── GoruntuIslemeProjeleri.lastbuildstate
│ │ ├── GoruntuIslemeProjeleri.write.1u.tlog
│ │ ├── MSCORLIB.DLL.metagen
│ │ ├── SYSTEM.DATA.DLL.metagen
│ │ ├── SYSTEM.DLL.metagen
│ │ ├── SYSTEM.DRAWING.DLL.metagen
│ │ ├── SYSTEM.WINDOWS.FORMS.DATAVISUALIZATION.DLL.metagen
│ │ ├── SYSTEM.WINDOWS.FORMS.DLL.metagen
│ │ ├── SYSTEM.XML.DLL.metagen
│ │ ├── TZRES.DLL.bi
│ │ ├── link.command.1.tlog
│ │ ├── link.read.1.tlog
│ │ ├── link.write.1.tlog
│ │ ├── metagen.read.1.tlog
│ │ └── metagen.write.1.tlog
│ ├── GoruntuIslemeProjeleri.Build.CppClean.log
│ ├── GoruntuIslemeProjeleri.Canny.resources
│ ├── GoruntuIslemeProjeleri.EqualHistogram.resources
│ ├── GoruntuIslemeProjeleri.Histogram.resources
│ ├── GoruntuIslemeProjeleri.MyForm.resources
│ ├── GoruntuIslemeProjeleri.MyForm1.resources
│ ├── GoruntuIslemeProjeleri.log
│ ├── GoruntuIslemeProjeleri.vcxproj.GenerateResource.cache
│ ├── GoruntuIslemeProjeleri.vcxprojAssemblyReference.cache
│ ├── Histogram.obj
│ ├── MyForm.obj
│ ├── MyForm1.obj
│ ├── humoments.obj
│ ├── imge_bmp.obj
│ └── vc141.pdb
├── EqualHistogram.cpp
├── EqualHistogram.h
├── EqualHistogram.resx
├── GoruntuIslemeProjeleri.vcxproj
├── GoruntuIslemeProjeleri.vcxproj.filters
├── GoruntuIslemeProjeleri.vcxproj.user
├── Histogram.cpp
├── Histogram.h
├── Histogram.resx
├── MyForm.cpp
├── MyForm.h
├── MyForm.resx
├── hello.bmp
├── humoments.cpp
├── humoments.h
├── images
│ └── zoomed.bmp
├── imge_bmp.cpp
├── imge_bmp.h
├── x64
│ └── Debug
│ │ ├── .NETFramework,Version=v4.6.1.AssemblyAttributes.asm
│ │ ├── .NETFramework,Version=v4.6.1.AssemblyAttributes.obj
│ │ ├── Canny.obj
│ │ ├── EqualHistogram.obj
│ │ ├── GoruntuI.C8D72D1C.tlog
│ │ ├── CL.command.1.tlog
│ │ ├── CL.read.1.tlog
│ │ ├── CL.write.1.tlog
│ │ ├── CLR.DLL.bi
│ │ ├── CLUI.DLL.bi
│ │ ├── GoruntuIslemeProjeleri.lastbuildstate
│ │ ├── GoruntuIslemeProjeleri.write.1u.tlog
│ │ ├── MSCORLIB.DLL.metagen
│ │ ├── SYSTEM.DATA.DLL.metagen
│ │ ├── SYSTEM.DLL.metagen
│ │ ├── SYSTEM.DRAWING.DLL.metagen
│ │ ├── SYSTEM.WINDOWS.FORMS.DATAVISUALIZATION.DLL.metagen
│ │ ├── SYSTEM.WINDOWS.FORMS.DLL.metagen
│ │ ├── SYSTEM.XML.DLL.metagen
│ │ ├── TZRES.DLL.bi
│ │ ├── link.2044-cvtres.read.1.tlog
│ │ ├── link.2044-cvtres.write.1.tlog
│ │ ├── link.2044-rc.read.1.tlog
│ │ ├── link.2044-rc.write.1.tlog
│ │ ├── link.2044.read.1.tlog
│ │ ├── link.2044.write.1.tlog
│ │ ├── link.2452-cvtres.read.1.tlog
│ │ ├── link.2452-cvtres.write.1.tlog
│ │ ├── link.2452-rc.read.1.tlog
│ │ ├── link.2452-rc.write.1.tlog
│ │ ├── link.2452.read.1.tlog
│ │ ├── link.2452.write.1.tlog
│ │ ├── link.5420-cvtres.read.1.tlog
│ │ ├── link.5420-cvtres.write.1.tlog
│ │ ├── link.5420-rc.read.1.tlog
│ │ ├── link.5420-rc.write.1.tlog
│ │ ├── link.5420.read.1.tlog
│ │ ├── link.5420.write.1.tlog
│ │ ├── link.5676.read.1.tlog
│ │ ├── link.5676.write.1.tlog
│ │ ├── link.5968-cvtres.read.1.tlog
│ │ ├── link.5968-cvtres.write.1.tlog
│ │ ├── link.5968-rc.read.1.tlog
│ │ ├── link.5968-rc.write.1.tlog
│ │ ├── link.5968.read.1.tlog
│ │ ├── link.5968.write.1.tlog
│ │ ├── link.9388-cvtres.read.1.tlog
│ │ ├── link.9388-cvtres.write.1.tlog
│ │ ├── link.9388-rc.read.1.tlog
│ │ ├── link.9388-rc.write.1.tlog
│ │ ├── link.9388.read.1.tlog
│ │ ├── link.9388.write.1.tlog
│ │ ├── link.command.1.tlog
│ │ ├── link.read.1.tlog
│ │ ├── link.write.1.tlog
│ │ ├── metagen.read.1.tlog
│ │ ├── metagen.write.1.tlog
│ │ └── unsuccessfulbuild
│ │ ├── GoruntuIslemeProjeleri.Canny.resources
│ │ ├── GoruntuIslemeProjeleri.EqualHistogram.resources
│ │ ├── GoruntuIslemeProjeleri.Histogram.resources
│ │ ├── GoruntuIslemeProjeleri.MyForm.resources
│ │ ├── GoruntuIslemeProjeleri.log
│ │ ├── GoruntuIslemeProjeleri.vcxproj.GenerateResource.cache
│ │ ├── GoruntuIslemeProjeleri.vcxprojAssemblyReference.cache
│ │ ├── Histogram.obj
│ │ ├── MyForm.obj
│ │ ├── imge_bmp.obj
│ │ └── vc141.pdb
└── zoomed.bmp
├── README.md
└── x64
└── Debug
└── GoruntuIslemeProjeleri.pdb
/Debug/GoruntuIslemeProjeleri.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/Debug/GoruntuIslemeProjeleri.exe
--------------------------------------------------------------------------------
/Debug/GoruntuIslemeProjeleri.exe.metagen:
--------------------------------------------------------------------------------
1 | GoruntuIslemeProjeleri.EqualHistogram.resources - Embedded, ContainedInManifestFile,
2 | GoruntuIslemeProjeleri.Histogram.resources - Embedded, ContainedInManifestFile,
3 | GoruntuIslemeProjeleri.MyForm.resources - Embedded, ContainedInManifestFile,
4 | GoruntuIslemeProjeleri.Canny.resources - Embedded, ContainedInManifestFile,
5 | ImageRuntimeVersion: v4.0.30319
6 | Assembly GoruntuIslemeProjeleri, Version=0.0.*, Culture=Invariant Language (Invariant Country):
7 | hash=SHA1, flags=PublicKey
8 | Assembly mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:
9 | hash=None, flags=None
10 | Assembly System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:
11 | hash=None, flags=None
12 | Assembly System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:
13 | hash=None, flags=None
14 | Assembly System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
15 | hash=None, flags=None
16 | Assembly System.Windows.Forms.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:
17 | hash=None, flags=None
18 | Assembly System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:
19 | hash=None, flags=None
20 | Assembly System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:
21 | hash=None, flags=None
22 | Class GoruntuIslemeProjeleri.EqualHistogram: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit
23 | :System.Windows.Forms.Form
24 | Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName
25 | Methods:
26 | equalHistogram(Int32*): PrivateScope, Public, HideBySig
27 | Class GoruntuIslemeProjeleri.Histogram: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit
28 | :System.Windows.Forms.Form
29 | Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName
30 | Methods:
31 | setHistogram(Int32*): PrivateScope, Public, HideBySig
32 | Class GoruntuIslemeProjeleri.Canny: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit
33 | :System.Windows.Forms.Form
34 | Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName
35 | Methods:
36 | findLine(): PrivateScope, Public, HideBySig
37 | Class GoruntuIslemeProjeleri.MyForm: AutoLayout, AnsiClass, Class, Public, BeforeFieldInit
38 | :System.Windows.Forms.Form
39 | Void .ctor(): PrivateScope, Public, HideBySig, SpecialName, RTSpecialName
40 | Methods:
41 | InitializeComponent(): PrivateScope, Public, HideBySig
42 |
--------------------------------------------------------------------------------
/Debug/GoruntuIslemeProjeleri.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/Debug/GoruntuIslemeProjeleri.pdb
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.329
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GoruntuIslemeProjeleri", "GoruntuIslemeProjeleri\GoruntuIslemeProjeleri.vcxproj", "{C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Debug|x64.ActiveCfg = Debug|x64
17 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Debug|x64.Build.0 = Debug|x64
18 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Debug|x86.ActiveCfg = Debug|Win32
19 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Debug|x86.Build.0 = Debug|Win32
20 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Release|x64.ActiveCfg = Release|x64
21 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Release|x64.Build.0 = Release|x64
22 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Release|x86.ActiveCfg = Release|Win32
23 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {20120A4E-3A51-4BC0-B3C1-E0ECBD6986E8}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Canny.cpp:
--------------------------------------------------------------------------------
1 | #include "Canny.h"
2 |
3 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Canny.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Canny.h
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.asm:
--------------------------------------------------------------------------------
1 | ; Listing generated by Microsoft (R) Optimizing Compiler Version 19.16.27026.1
2 |
3 | ; Generated by VC++ for Common Language Runtime
4 | .file "C:\Users\Orkhan ALIYEV\AppData\Local\Temp\.NETFramework,Version=v4.6.1.AssemblyAttributes.cpp"
5 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/Canny.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/Canny.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/EqualHistogram.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/EqualHistogram.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CL.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CL.command.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CL.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CL.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CLR.DLL.bi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CLR.DLL.bi
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CLUI.DLL.bi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/CLUI.DLL.bi
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/GoruntuIslemeProjeleri.lastbuildstate:
--------------------------------------------------------------------------------
1 | #TargetFrameworkVersion=v4.6.1:PlatformToolSet=v141:EnableManagedIncrementalBuild=true:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
2 | Debug|Win32|C:\Users\Orkhan ALIYEV\Desktop\Projeler\GoruntuIslemeProjeleri_\|
3 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/GoruntuIslemeProjeleri.write.1u.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/GoruntuIslemeProjeleri.write.1u.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/TZRES.DLL.bi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/TZRES.DLL.bi
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/link.command.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/link.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/link.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/metagen.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/metagen.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/metagen.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuI.C8D72D1C.tlog/metagen.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.Build.CppClean.log:
--------------------------------------------------------------------------------
1 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\vc141.pdb
2 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\.netframework,versıon=v4.6.1.assemblyattrıbutes.obj
3 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\.netframework,versıon=v4.6.1.assemblyattrıbutes.asm
4 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\ımge_bmp.obj
5 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\myform.obj
6 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\myform1.obj
7 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\canny.obj
8 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\hıstogram.obj
9 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuıslemeprojeleri.myform.resources
10 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuıslemeprojeleri.myform1.resources
11 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuıslemeprojeleri.canny.resources
12 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuıslemeprojeleri.histogram.resources
13 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\debug\goruntuıslemeprojelerı.exe
14 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\debug\goruntuıslemeprojelerı.pdb
15 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojelerı_\goruntuıslemeprojelerı\debug\goruntuı.c8d72d1c.tlog\metagen.wrıte.1.tlog
16 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuıslemeprojeleri.vcxproj.generateresource.cache
17 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuıslemeprojeleri.vcxprojassemblyreference.cache
18 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\.netframework,version=v4.6.1.assemblyattributes.obj
19 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\canny.obj
20 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\histogram.obj
21 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\humoments.obj
22 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\imge_bmp.obj
23 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\myform.obj
24 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\myform1.obj
25 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\vc141.pdb
26 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\debug\goruntuıslemeprojeleri.pdb
27 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\debug\goruntuıslemeprojeleri.exe
28 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\cl.command.1.tlog
29 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\cl.read.1.tlog
30 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\cl.write.1.tlog
31 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\goruntuıslemeprojeleri.write.1u.tlog
32 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\link.command.1.tlog
33 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\link.read.1.tlog
34 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\link.write.1.tlog
35 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\metagen.read.1.tlog
36 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\metagen.write.1.tlog
37 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\mscorlıb.dll.metagen
38 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\system.data.dll.metagen
39 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\system.dll.metagen
40 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\system.drawıng.dll.metagen
41 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\system.wındows.forms.datavısualızatıon.dll.metagen
42 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\system.wındows.forms.dll.metagen
43 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\system.xml.dll.metagen
44 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\clr.dll.bi
45 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\cluı.dll.bi
46 | c:\users\orkhan alıyev\desktop\goruntuıslemeprojeleri_\goruntuıslemeprojeleri\debug\goruntuı.c8d72d1c.tlog\tzres.dll.bi
47 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.Canny.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.Canny.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.EqualHistogram.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.EqualHistogram.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.Histogram.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.Histogram.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.MyForm.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.MyForm.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.MyForm1.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.MyForm1.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.log:
--------------------------------------------------------------------------------
1 | imge_bmp.cpp
2 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(216): warning C4018: '<': signed/unsigned mismatch
3 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(218): warning C4018: '<': signed/unsigned mismatch
4 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(226): warning C4244: '=': conversion from 'double' to 'BYTE', possible loss of data
5 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(234): warning C4018: '<': signed/unsigned mismatch
6 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(239): warning C4244: '=': conversion from 'double' to 'BYTE', possible loss of data
7 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(359): warning C4018: '<': signed/unsigned mismatch
8 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(445): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
9 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(446): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
10 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(457): warning C4018: '<': signed/unsigned mismatch
11 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(474): warning C4018: '<': signed/unsigned mismatch
12 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(476): warning C4018: '<': signed/unsigned mismatch
13 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(500): warning C4018: '<': signed/unsigned mismatch
14 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(502): warning C4018: '<': signed/unsigned mismatch
15 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(801): warning C4018: '<': signed/unsigned mismatch
16 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(803): warning C4018: '<': signed/unsigned mismatch
17 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(816): warning C4018: '<': signed/unsigned mismatch
18 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(818): warning C4018: '<': signed/unsigned mismatch
19 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(829): warning C4018: '<': signed/unsigned mismatch
20 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(831): warning C4018: '<': signed/unsigned mismatch
21 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(834): warning C4244: '=': conversion from 'double' to 'BYTE', possible loss of data
22 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(845): warning C4018: '<': signed/unsigned mismatch
23 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(847): warning C4018: '<': signed/unsigned mismatch
24 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(850): warning C4244: '=': conversion from 'double' to 'BYTE', possible loss of data
25 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(866): warning C4018: '<': signed/unsigned mismatch
26 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(868): warning C4018: '<': signed/unsigned mismatch
27 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(880): warning C4018: '<': signed/unsigned mismatch
28 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(882): warning C4018: '<': signed/unsigned mismatch
29 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(885): warning C4244: '=': conversion from 'double' to 'BYTE', possible loss of data
30 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(897): warning C4018: '<': signed/unsigned mismatch
31 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(899): warning C4018: '<': signed/unsigned mismatch
32 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(903): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
33 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1027): warning C4018: '<': signed/unsigned mismatch
34 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1029): warning C4018: '<': signed/unsigned mismatch
35 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1032): warning C4244: '=': conversion from 'double' to 'BYTE', possible loss of data
36 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1052): warning C4018: '<': signed/unsigned mismatch
37 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1053): warning C4018: '<': signed/unsigned mismatch
38 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1062): warning C4018: '<': signed/unsigned mismatch
39 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1064): warning C4018: '<': signed/unsigned mismatch
40 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1081): warning C4018: '<': signed/unsigned mismatch
41 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1083): warning C4018: '<': signed/unsigned mismatch
42 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1086): warning C4244: '=': conversion from 'double' to 'BYTE', possible loss of data
43 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1099): warning C4018: '<': signed/unsigned mismatch
44 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1101): warning C4018: '<': signed/unsigned mismatch
45 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1107): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
46 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1216): warning C4553: '==': result of expression not used; did you intend '='?
47 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1225): warning C4553: '==': result of expression not used; did you intend '='?
48 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1245): warning C4018: '<': signed/unsigned mismatch
49 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1247): warning C4018: '<': signed/unsigned mismatch
50 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1266): warning C4018: '<': signed/unsigned mismatch
51 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1268): warning C4018: '<': signed/unsigned mismatch
52 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1302): warning C4018: '<': signed/unsigned mismatch
53 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1304): warning C4018: '<': signed/unsigned mismatch
54 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1309): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
55 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1322): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
56 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1324): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
57 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1333): warning C4018: '<': signed/unsigned mismatch
58 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1407): warning C4018: '<': signed/unsigned mismatch
59 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1420): warning C4018: '<': signed/unsigned mismatch
60 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1473): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
61 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1474): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
62 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1497): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
63 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1501): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
64 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1503): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
65 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1531): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
66 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1532): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
67 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1557): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
68 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1561): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
69 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1566): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
70 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(1570): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
71 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(591): warning C4715: 'Sinirlar': not all control paths return a value
72 | c:\users\orkhan aliyev\desktop\projeler\goruntuislemeprojeleri_\goruntuislemeprojeleri\imge_bmp.cpp(613): warning C4715: 'Tumleme': not all control paths return a value
73 | EqualHistogram.obj : MSIL module encountered; incremental linking is disabled for MSIL; performing full link
74 | GoruntuIslemeProjeleri.vcxproj -> C:\Users\Orkhan ALIYEV\Desktop\Projeler\GoruntuIslemeProjeleri_\Debug\GoruntuIslemeProjeleri.exe
75 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.vcxproj.GenerateResource.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.vcxproj.GenerateResource.cache
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.vcxprojAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/GoruntuIslemeProjeleri.vcxprojAssemblyReference.cache
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/Histogram.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/Histogram.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/MyForm.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/MyForm.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/MyForm1.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/MyForm1.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/humoments.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/humoments.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/imge_bmp.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/imge_bmp.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Debug/vc141.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/Debug/vc141.pdb
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/EqualHistogram.cpp:
--------------------------------------------------------------------------------
1 | #include "EqualHistogram.h"
2 |
3 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/EqualHistogram.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace GoruntuIslemeProjeleri {
4 |
5 | using namespace System;
6 | using namespace System::ComponentModel;
7 | using namespace System::Collections;
8 | using namespace System::Windows::Forms;
9 | using namespace System::Data;
10 | using namespace System::Drawing;
11 |
12 | ///
13 | /// Summary for EqualHistogram
14 | ///
15 | public ref class EqualHistogram : public System::Windows::Forms::Form
16 | {
17 | public:
18 | EqualHistogram(void)
19 | {
20 | InitializeComponent();
21 | //
22 | //TODO: Add the constructor code here
23 | //
24 | }
25 |
26 | protected:
27 | ///
28 | /// Clean up any resources being used.
29 | ///
30 | ~EqualHistogram()
31 | {
32 | if (components)
33 | {
34 | delete components;
35 | }
36 | }
37 | private: System::Windows::Forms::DataVisualization::Charting::Chart^ chart1;
38 | protected:
39 |
40 | private:
41 | ///
42 | /// Required designer variable.
43 | ///
44 | System::ComponentModel::Container ^components;
45 |
46 | #pragma region Windows Form Designer generated code
47 | ///
48 | /// Required method for Designer support - do not modify
49 | /// the contents of this method with the code editor.
50 | ///
51 | void InitializeComponent(void)
52 | {
53 | System::Windows::Forms::DataVisualization::Charting::ChartArea^ chartArea1 = (gcnew System::Windows::Forms::DataVisualization::Charting::ChartArea());
54 | System::Windows::Forms::DataVisualization::Charting::Legend^ legend1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Legend());
55 | System::Windows::Forms::DataVisualization::Charting::Series^ series1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Series());
56 | System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(EqualHistogram::typeid));
57 | this->chart1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Chart());
58 | (cli::safe_cast(this->chart1))->BeginInit();
59 | this->SuspendLayout();
60 | //
61 | // chart1
62 | //
63 | chartArea1->Name = L"ChartArea1";
64 | this->chart1->ChartAreas->Add(chartArea1);
65 | legend1->Name = L"Legend1";
66 | this->chart1->Legends->Add(legend1);
67 | this->chart1->Location = System::Drawing::Point(12, 12);
68 | this->chart1->Name = L"chart1";
69 | series1->ChartArea = L"ChartArea1";
70 | series1->Legend = L"Legend1";
71 | series1->Name = L"Series1";
72 | this->chart1->Series->Add(series1);
73 | this->chart1->Size = System::Drawing::Size(426, 376);
74 | this->chart1->TabIndex = 0;
75 | this->chart1->Text = L"chart1";
76 | //
77 | // EqualHistogram
78 | //
79 | this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
80 | this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
81 | this->ClientSize = System::Drawing::Size(450, 400);
82 | this->Controls->Add(this->chart1);
83 | this->Icon = (cli::safe_cast(resources->GetObject(L"$this.Icon")));
84 | this->Name = L"EqualHistogram";
85 | this->Text = L"EqualHistogram";
86 | (cli::safe_cast(this->chart1))->EndInit();
87 | this->ResumeLayout(false);
88 |
89 | }
90 |
91 |
92 | public: void equalHistogram(int* tempHistogram) {
93 | chart1->Titles->Clear();
94 | chart1->Series->Clear();
95 | chart1->Series->Add("Number Of Pixel");
96 |
97 | for (unsigned int i = 0; i < 256; i++)
98 | {
99 | chart1->Series["Number Of Pixel"]->Points->AddXY(i, tempHistogram[i]);
100 | }
101 | chart1->Titles->Add("Histogram(Stretch)");
102 | }
103 | #pragma endregion
104 | };
105 | }
106 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/GoruntuIslemeProjeleri.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 |
22 | 15.0
23 | {C8D72D1C-F3A5-4664-9E6A-5147E7C13BC9}
24 | v4.6.1
25 | ManagedCProj
26 | GoruntuIslemeProjeleri
27 | 10.0.17763.0
28 |
29 |
30 |
31 | Application
32 | true
33 | v141
34 | true
35 | Unicode
36 |
37 |
38 | Application
39 | false
40 | v141
41 | true
42 | Unicode
43 |
44 |
45 | Application
46 | true
47 | v141
48 | true
49 | Unicode
50 |
51 |
52 | Application
53 | false
54 | v141
55 | true
56 | Unicode
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | true
78 |
79 |
80 | true
81 |
82 |
83 | false
84 |
85 |
86 | false
87 |
88 |
89 |
90 | Level3
91 | Disabled
92 | WIN32;_DEBUG;%(PreprocessorDefinitions)
93 |
94 |
95 |
96 | Windows
97 | Main
98 |
99 |
100 |
101 |
102 | Level3
103 | Disabled
104 | _DEBUG;%(PreprocessorDefinitions)
105 |
106 |
107 |
108 | Windows
109 | main
110 |
111 |
112 |
113 |
114 | Level3
115 | WIN32;NDEBUG;%(PreprocessorDefinitions)
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 | Level3
124 | NDEBUG;%(PreprocessorDefinitions)
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 | CppForm
149 |
150 |
151 | CppForm
152 |
153 |
154 |
155 |
156 | CppForm
157 |
158 |
159 | CppForm
160 |
161 |
162 |
163 |
164 | EqualHistogram.h
165 |
166 |
167 | Histogram.h
168 |
169 |
170 | MyForm.h
171 |
172 |
173 | Canny.h
174 |
175 |
176 |
177 |
178 |
179 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/GoruntuIslemeProjeleri.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;ipp;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | Source Files
20 |
21 |
22 | Source Files
23 |
24 |
25 | Source Files
26 |
27 |
28 | Source Files
29 |
30 |
31 | Source Files
32 |
33 |
34 | Source Files
35 |
36 |
37 |
38 |
39 | Header Files
40 |
41 |
42 | Header Files
43 |
44 |
45 | Header Files
46 |
47 |
48 | Header Files
49 |
50 |
51 | Header Files
52 |
53 |
54 | Header Files
55 |
56 |
57 |
58 |
59 | Resource Files
60 |
61 |
62 | Resource Files
63 |
64 |
65 | Resource Files
66 |
67 |
68 | Resource Files
69 |
70 |
71 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/GoruntuIslemeProjeleri.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Histogram.cpp:
--------------------------------------------------------------------------------
1 | #include "Histogram.h"
2 |
3 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/Histogram.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace GoruntuIslemeProjeleri {
4 |
5 | using namespace System;
6 | using namespace System::ComponentModel;
7 | using namespace System::Collections;
8 | using namespace System::Windows::Forms;
9 | using namespace System::Data;
10 | using namespace System::Drawing;
11 |
12 | ///
13 | /// Summary for Histogram
14 | ///
15 | public ref class Histogram : public System::Windows::Forms::Form
16 | {
17 | public:
18 | Histogram(void)
19 | {
20 | InitializeComponent();
21 | //
22 | //TODO: Add the constructor code here
23 | //
24 | }
25 |
26 | protected:
27 | ///
28 | /// Clean up any resources being used.
29 | ///
30 | ~Histogram()
31 | {
32 | if (components)
33 | {
34 | delete components;
35 | }
36 | }
37 | private: System::Windows::Forms::DataVisualization::Charting::Chart^ chart1;
38 | protected:
39 |
40 |
41 | private:
42 | ///
43 | /// Required designer variable.
44 | ///
45 | System::ComponentModel::Container ^components;
46 |
47 | #pragma region Windows Form Designer generated code
48 | ///
49 | /// Required method for Designer support - do not modify
50 | /// the contents of this method with the code editor.
51 | ///
52 | void InitializeComponent(void)
53 | {
54 | System::Windows::Forms::DataVisualization::Charting::ChartArea^ chartArea1 = (gcnew System::Windows::Forms::DataVisualization::Charting::ChartArea());
55 | System::Windows::Forms::DataVisualization::Charting::Legend^ legend1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Legend());
56 | System::Windows::Forms::DataVisualization::Charting::Series^ series1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Series());
57 | System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Histogram::typeid));
58 | this->chart1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Chart());
59 | (cli::safe_cast(this->chart1))->BeginInit();
60 | this->SuspendLayout();
61 | //
62 | // chart1
63 | //
64 | chartArea1->Name = L"ChartArea1";
65 | this->chart1->ChartAreas->Add(chartArea1);
66 | legend1->Name = L"Legend1";
67 | this->chart1->Legends->Add(legend1);
68 | this->chart1->Location = System::Drawing::Point(12, 12);
69 | this->chart1->Name = L"chart1";
70 | series1->ChartArea = L"ChartArea1";
71 | series1->Legend = L"Legend1";
72 | series1->Name = L"Series1";
73 | this->chart1->Series->Add(series1);
74 | this->chart1->Size = System::Drawing::Size(427, 387);
75 | this->chart1->TabIndex = 0;
76 | this->chart1->Text = L"chart1";
77 | //
78 | // Histogram
79 | //
80 | this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
81 | this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
82 | this->ClientSize = System::Drawing::Size(450, 400);
83 | this->Controls->Add(this->chart1);
84 | this->Icon = (cli::safe_cast(resources->GetObject(L"$this.Icon")));
85 | this->Name = L"Histogram";
86 | this->Text = L"Histogram";
87 | (cli::safe_cast(this->chart1))->EndInit();
88 | this->ResumeLayout(false);
89 |
90 | }
91 |
92 | public: void setHistogram(int* hist) {
93 | chart1->Titles->Clear();
94 | chart1->Series->Clear();
95 | chart1->Series->Add("Number Of Pixel");
96 |
97 |
98 | for (unsigned int i = 0; i < 256; i++)
99 | {
100 | chart1->Series["Number Of Pixel"]->Points->AddXY(i, hist[i]);
101 | }
102 |
103 | chart1->Titles->Add("Histogram");
104 | }
105 |
106 |
107 | #pragma endregion
108 |
109 | };
110 | }
111 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/MyForm.cpp:
--------------------------------------------------------------------------------
1 | #include "MyForm.h"
2 |
3 | using namespace System;
4 | using namespace System::Windows::Forms;
5 |
6 | [STAThreadAttribute]
7 | void Main(array^ args) {
8 | Application::EnableVisualStyles();
9 | Application::SetCompatibleTextRenderingDefault(false);
10 | GoruntuIslemeProjeleri::MyForm form;
11 | Application::Run(%form);
12 | }
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/MyForm.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #define _USE_MATH_DEFINES
5 | #include
6 | #include "imge_bmp.h"
7 | #include "Canny.h"
8 | #include "Histogram.h"
9 | #include "EqualHistogram.h"
10 |
11 |
12 | using namespace std;
13 |
14 | float maske[9] = { 0.25,0.50,0.25,
15 | 0.50, 1 ,0.50,
16 | 0.25,0.50,0.25 };
17 |
18 | //float maske[9] = { 0,1,0,
19 | // 1,1,1,
20 | // 0,1,0 };
21 | float maske1[25] = { 0.0625, 0.125, 0.25, 0.125, 0.0625,
22 | 0.125, 0.25, 0.5, 0.25, 0.125,
23 | 0.25, 0.5, 1, 0.5, 0.25,
24 | 0.125, 0.25, 0.5, 0.25, 0.125,
25 | 0.0625, 0.125, 0.25, 0.125, 0.0625 };
26 |
27 | float maske2[49] = { 0.015625 , 0.03125, 0.0625, 0.125, 0.0625, 0.03125,0.015625,
28 | 0.03125, 0.0625, 0.125, 0.25, 0.125, 0.0625, 0.03125,
29 | 0.625, 0.125, 0.25, 0.5, 0.25, 0.125, 0.625,
30 | 0.125, 0.25, 0.5, 1, 0.5, 0.25, 0.125,
31 | 0.625, 0.125, 0.25, 0.5, 0.25, 0.125, 0.625,
32 | 0.03125, 0.0625, 0.125, 0.25, 0.125, 0.0625, 0.03125,
33 | 0.015625, 0.03125, 0.0625, 0.125, 0.0625, 0.03125,0.015625 };
34 |
35 | namespace GoruntuIslemeProjeleri {
36 |
37 | using namespace System;
38 | using namespace System::ComponentModel;
39 | using namespace System::Collections;
40 | using namespace System::Windows::Forms;
41 | using namespace System::Data;
42 | using namespace System::Drawing;
43 |
44 | ///
45 | /// Summary for MyForm
46 | ///
47 | public ref class MyForm : public System::Windows::Forms::Form
48 | {
49 | public:
50 | MyForm(void)
51 | {
52 | InitializeComponent();
53 | //
54 | //TODO: Add the constructor code here
55 | //
56 | }
57 |
58 | protected:
59 | ///
60 | /// Clean up any resources being used.
61 | ///
62 | ~MyForm()
63 | {
64 | if (components)
65 | {
66 | delete components;
67 | }
68 | }
69 |
70 |
71 | private:
72 | BYTE* Buffer;
73 | BYTE* Raw_Intensity;
74 | int Width, Height;
75 | long Size, new_size, newWidth, newHeight;
76 | unsigned int zoom_height1;
77 | unsigned int zoom_height2;
78 | unsigned int zoom_width1;
79 | unsigned int zoom_width2;
80 |
81 |
82 |
83 | private: System::Windows::Forms::OpenFileDialog^ openFileDialog1;
84 | private: System::Windows::Forms::PictureBox^ pictureBox1;
85 | private: System::Windows::Forms::MenuStrip^ menuStrip1;
86 | private: System::Windows::Forms::ToolStripMenuItem^ openToolStripMenuItem;
87 | private: System::Windows::Forms::ToolStripMenuItem^ openToolStripMenuItem1;
88 | private: System::Windows::Forms::PictureBox^ pictureBox3;
89 | private: System::Windows::Forms::ToolStripMenuItem^ processesToolStripMenuItem;
90 | private: System::Windows::Forms::NumericUpDown^ numericUpDown6;
91 | private: System::Windows::Forms::NumericUpDown^ numericUpDown5;
92 | private: System::Windows::Forms::ToolStripMenuItem^ clearToolStripMenuItem;
93 | private: System::Windows::Forms::ToolStripMenuItem^ exitToolStripMenuItem;
94 |
95 | private: System::Windows::Forms::ToolStripMenuItem^ kMeansToolStripMenuItem;
96 | private: System::Windows::Forms::ToolStripMenuItem^ convertIntensityToolStripMenuItem;
97 | private: System::Windows::Forms::PictureBox^ pictureBox2;
98 | private: System::Windows::Forms::ToolStripMenuItem^ morfolgyToolStripMenuItem;
99 | private: System::Windows::Forms::ToolStripMenuItem^ dilationToolStripMenuItem1;
100 | private: System::Windows::Forms::ToolStripMenuItem^ erosionToolStripMenuItem;
101 | private: System::Windows::Forms::ToolStripMenuItem^ openingToolStripMenuItem;
102 | private: System::Windows::Forms::ToolStripMenuItem^ closingToolStripMenuItem;
103 | private: System::Windows::Forms::ToolStripMenuItem^ histogramToolStripMenuItem;
104 | private: System::Windows::Forms::ToolStripMenuItem^ setHistogramToolStripMenuItem1;
105 | private: System::Windows::Forms::ToolStripMenuItem^ histogramEqualizationToolStripMenuItem;
106 | private: System::Windows::Forms::ToolStripMenuItem^ drawToolStripMenuItem;
107 | private: System::Windows::Forms::ToolStripMenuItem^ lineToolStripMenuItem;
108 | private: System::Windows::Forms::ToolStripMenuItem^ circleToolStripMenuItem;
109 | private: System::Windows::Forms::ToolStripMenuItem^ angerToolStripMenuItem;
110 | private: System::Windows::Forms::ToolStripMenuItem^ drawEdgeToolStripMenuItem;
111 | private: System::Windows::Forms::ToolStripMenuItem^ drawBlackEdgeToolStripMenuItem;
112 | private: System::Windows::Forms::ToolStripMenuItem^ drawWhiteEdgeToolStripMenuItem;
113 | private: System::Windows::Forms::ToolStripMenuItem^ drawBlackEdgeToolStripMenuItem1;
114 | private: System::Windows::Forms::ToolStripMenuItem^ drawWhiteEdgeToolStripMenuItem1;
115 | private: System::Windows::Forms::ToolStripMenuItem^ drawBlackEdgeToolStripMenuItem2;
116 | private: System::Windows::Forms::ToolStripMenuItem^ ıntegrationToolStripMenuItem;
117 | private: System::Windows::Forms::ToolStripMenuItem^ ıntegrationWithZeroToolStripMenuItem;
118 | private: System::Windows::Forms::ToolStripMenuItem^ ıntegrationWith255ToolStripMenuItem;
119 | private: System::Windows::Forms::ToolStripMenuItem^ objectRecogToolStripMenuItem;
120 | private: System::Windows::Forms::Label^ label2;
121 | private: System::Windows::Forms::ToolStripMenuItem^ findLineToolStripMenuItem;
122 | private: System::Windows::Forms::ToolStripMenuItem^ ımageGeometryToolStripMenuItem;
123 | private: System::Windows::Forms::ToolStripMenuItem^ moveToolStripMenuItem;
124 | private: System::Windows::Forms::ToolStripMenuItem^ rotateToolStripMenuItem;
125 | private: System::Windows::Forms::NumericUpDown^ numericUpDown1;
126 | private: System::Windows::Forms::Label^ label1;
127 | private: System::Windows::Forms::GroupBox^ groupBox1;
128 | private: System::Windows::Forms::ToolStripMenuItem^ rotateAliasToolStripMenuItem;
129 | private: System::Windows::Forms::ToolStripMenuItem^ mirrorToolStripMenuItem;
130 |
131 |
132 |
133 | private: System::Windows::Forms::ToolStripMenuItem^ shearingToolStripMenuItem;
134 | private: System::Windows::Forms::NumericUpDown^ numericUpDown3;
135 | private: System::Windows::Forms::Label^ label4;
136 | private: System::Windows::Forms::Label^ label3;
137 | private: System::Windows::Forms::NumericUpDown^ numericUpDown2;
138 |
139 |
140 |
141 |
142 |
143 | private: System::ComponentModel::IContainer^ components;
144 | ///
145 | /// Required designer variable.
146 | ///
147 | public:
148 | #pragma region Windows Form Designer generated code
149 | ///
150 | /// Required method for Designer support - do not modify
151 | /// the contents of this method with the code editor.
152 | ///
153 | void InitializeComponent(void)
154 | {
155 | System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MyForm::typeid));
156 | this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
157 | this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
158 | this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
159 | this->openToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
160 | this->openToolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
161 | this->clearToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
162 | this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
163 | this->processesToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
164 | this->convertIntensityToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
165 | this->drawToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
166 | this->lineToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
167 | this->circleToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
168 | this->histogramToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
169 | this->setHistogramToolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
170 | this->histogramEqualizationToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
171 | this->kMeansToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
172 | this->morfolgyToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
173 | this->dilationToolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
174 | this->erosionToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
175 | this->openingToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
176 | this->closingToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
177 | this->angerToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
178 | this->drawEdgeToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
179 | this->drawWhiteEdgeToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
180 | this->drawBlackEdgeToolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
181 | this->drawBlackEdgeToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
182 | this->drawWhiteEdgeToolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
183 | this->drawBlackEdgeToolStripMenuItem2 = (gcnew System::Windows::Forms::ToolStripMenuItem());
184 | this->ıntegrationToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
185 | this->ıntegrationWithZeroToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
186 | this->ıntegrationWith255ToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
187 | this->objectRecogToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
188 | this->findLineToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
189 | this->ımageGeometryToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
190 | this->moveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
191 | this->rotateToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
192 | this->rotateAliasToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
193 | this->mirrorToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
194 | this->shearingToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
195 | this->pictureBox3 = (gcnew System::Windows::Forms::PictureBox());
196 | this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());
197 | this->label2 = (gcnew System::Windows::Forms::Label());
198 | this->numericUpDown1 = (gcnew System::Windows::Forms::NumericUpDown());
199 | this->label1 = (gcnew System::Windows::Forms::Label());
200 | this->groupBox1 = (gcnew System::Windows::Forms::GroupBox());
201 | this->numericUpDown2 = (gcnew System::Windows::Forms::NumericUpDown());
202 | this->label3 = (gcnew System::Windows::Forms::Label());
203 | this->numericUpDown3 = (gcnew System::Windows::Forms::NumericUpDown());
204 | this->label4 = (gcnew System::Windows::Forms::Label());
205 | (cli::safe_cast(this->pictureBox1))->BeginInit();
206 | this->menuStrip1->SuspendLayout();
207 | (cli::safe_cast(this->pictureBox3))->BeginInit();
208 | (cli::safe_cast(this->pictureBox2))->BeginInit();
209 | (cli::safe_cast(this->numericUpDown1))->BeginInit();
210 | this->groupBox1->SuspendLayout();
211 | (cli::safe_cast(this->numericUpDown2))->BeginInit();
212 | (cli::safe_cast(this->numericUpDown3))->BeginInit();
213 | this->SuspendLayout();
214 | //
215 | // openFileDialog1
216 | //
217 | this->openFileDialog1->FileName = L"openFileDialog1";
218 | //
219 | // pictureBox1
220 | //
221 | this->pictureBox1->Location = System::Drawing::Point(12, 27);
222 | this->pictureBox1->Name = L"pictureBox1";
223 | this->pictureBox1->Size = System::Drawing::Size(384, 256);
224 | this->pictureBox1->TabIndex = 0;
225 | this->pictureBox1->TabStop = false;
226 | //
227 | // menuStrip1
228 | //
229 | this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {
230 | this->openToolStripMenuItem,
231 | this->processesToolStripMenuItem
232 | });
233 | this->menuStrip1->Location = System::Drawing::Point(0, 0);
234 | this->menuStrip1->Name = L"menuStrip1";
235 | this->menuStrip1->Size = System::Drawing::Size(1032, 24);
236 | this->menuStrip1->TabIndex = 3;
237 | this->menuStrip1->Text = L"menuStrip1";
238 | //
239 | // openToolStripMenuItem
240 | //
241 | this->openToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {
242 | this->openToolStripMenuItem1,
243 | this->clearToolStripMenuItem, this->exitToolStripMenuItem
244 | });
245 | this->openToolStripMenuItem->Name = L"openToolStripMenuItem";
246 | this->openToolStripMenuItem->Size = System::Drawing::Size(37, 20);
247 | this->openToolStripMenuItem->Text = L"File";
248 | //
249 | // openToolStripMenuItem1
250 | //
251 | this->openToolStripMenuItem1->Name = L"openToolStripMenuItem1";
252 | this->openToolStripMenuItem1->Size = System::Drawing::Size(103, 22);
253 | this->openToolStripMenuItem1->Text = L"Open";
254 | this->openToolStripMenuItem1->Click += gcnew System::EventHandler(this, &MyForm::openToolStripMenuItem1_Click);
255 | //
256 | // clearToolStripMenuItem
257 | //
258 | this->clearToolStripMenuItem->Name = L"clearToolStripMenuItem";
259 | this->clearToolStripMenuItem->Size = System::Drawing::Size(103, 22);
260 | this->clearToolStripMenuItem->Text = L"Clear";
261 | this->clearToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::clearToolStripMenuItem_Click_1);
262 | //
263 | // exitToolStripMenuItem
264 | //
265 | this->exitToolStripMenuItem->Name = L"exitToolStripMenuItem";
266 | this->exitToolStripMenuItem->Size = System::Drawing::Size(103, 22);
267 | this->exitToolStripMenuItem->Text = L"Exit";
268 | this->exitToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::exitToolStripMenuItem_Click);
269 | //
270 | // processesToolStripMenuItem
271 | //
272 | this->processesToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(10) {
273 | this->convertIntensityToolStripMenuItem,
274 | this->drawToolStripMenuItem, this->histogramToolStripMenuItem, this->kMeansToolStripMenuItem, this->morfolgyToolStripMenuItem,
275 | this->angerToolStripMenuItem, this->ıntegrationToolStripMenuItem, this->objectRecogToolStripMenuItem, this->findLineToolStripMenuItem,
276 | this->ımageGeometryToolStripMenuItem
277 | });
278 | this->processesToolStripMenuItem->Name = L"processesToolStripMenuItem";
279 | this->processesToolStripMenuItem->Size = System::Drawing::Size(50, 20);
280 | this->processesToolStripMenuItem->Text = L"Apply";
281 | //
282 | // convertIntensityToolStripMenuItem
283 | //
284 | this->convertIntensityToolStripMenuItem->Name = L"convertIntensityToolStripMenuItem";
285 | this->convertIntensityToolStripMenuItem->Size = System::Drawing::Size(184, 22);
286 | this->convertIntensityToolStripMenuItem->Text = L"Convert Intensity";
287 | this->convertIntensityToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::convertIntensityToolStripMenuItem_Click);
288 | //
289 | // drawToolStripMenuItem
290 | //
291 | this->drawToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {
292 | this->lineToolStripMenuItem,
293 | this->circleToolStripMenuItem
294 | });
295 | this->drawToolStripMenuItem->Name = L"drawToolStripMenuItem";
296 | this->drawToolStripMenuItem->Size = System::Drawing::Size(184, 22);
297 | this->drawToolStripMenuItem->Text = L"Draw";
298 | //
299 | // lineToolStripMenuItem
300 | //
301 | this->lineToolStripMenuItem->Name = L"lineToolStripMenuItem";
302 | this->lineToolStripMenuItem->Size = System::Drawing::Size(104, 22);
303 | this->lineToolStripMenuItem->Text = L"Line";
304 | this->lineToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::lineToolStripMenuItem_Click);
305 | //
306 | // circleToolStripMenuItem
307 | //
308 | this->circleToolStripMenuItem->Name = L"circleToolStripMenuItem";
309 | this->circleToolStripMenuItem->Size = System::Drawing::Size(104, 22);
310 | this->circleToolStripMenuItem->Text = L"Circle";
311 | this->circleToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::circleToolStripMenuItem_Click);
312 | //
313 | // histogramToolStripMenuItem
314 | //
315 | this->histogramToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {
316 | this->setHistogramToolStripMenuItem1,
317 | this->histogramEqualizationToolStripMenuItem
318 | });
319 | this->histogramToolStripMenuItem->Name = L"histogramToolStripMenuItem";
320 | this->histogramToolStripMenuItem->Size = System::Drawing::Size(184, 22);
321 | this->histogramToolStripMenuItem->Text = L"Histogram";
322 | //
323 | // setHistogramToolStripMenuItem1
324 | //
325 | this->setHistogramToolStripMenuItem1->Name = L"setHistogramToolStripMenuItem1";
326 | this->setHistogramToolStripMenuItem1->Size = System::Drawing::Size(197, 22);
327 | this->setHistogramToolStripMenuItem1->Text = L"Set Histogram";
328 | this->setHistogramToolStripMenuItem1->Click += gcnew System::EventHandler(this, &MyForm::setHistogramToolStripMenuItem1_Click);
329 | //
330 | // histogramEqualizationToolStripMenuItem
331 | //
332 | this->histogramEqualizationToolStripMenuItem->Name = L"histogramEqualizationToolStripMenuItem";
333 | this->histogramEqualizationToolStripMenuItem->Size = System::Drawing::Size(197, 22);
334 | this->histogramEqualizationToolStripMenuItem->Text = L"Histogram Equalization";
335 | this->histogramEqualizationToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::histogramEqualizationToolStripMenuItem_Click);
336 | //
337 | // kMeansToolStripMenuItem
338 | //
339 | this->kMeansToolStripMenuItem->Name = L"kMeansToolStripMenuItem";
340 | this->kMeansToolStripMenuItem->Size = System::Drawing::Size(184, 22);
341 | this->kMeansToolStripMenuItem->Text = L"KMeansClustering1D";
342 | this->kMeansToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::kMeansToolStripMenuItem_Click);
343 | //
344 | // morfolgyToolStripMenuItem
345 | //
346 | this->morfolgyToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(4) {
347 | this->dilationToolStripMenuItem1,
348 | this->erosionToolStripMenuItem, this->openingToolStripMenuItem, this->closingToolStripMenuItem
349 | });
350 | this->morfolgyToolStripMenuItem->Name = L"morfolgyToolStripMenuItem";
351 | this->morfolgyToolStripMenuItem->Size = System::Drawing::Size(184, 22);
352 | this->morfolgyToolStripMenuItem->Text = L"Morfolgy";
353 | //
354 | // dilationToolStripMenuItem1
355 | //
356 | this->dilationToolStripMenuItem1->Name = L"dilationToolStripMenuItem1";
357 | this->dilationToolStripMenuItem1->Size = System::Drawing::Size(120, 22);
358 | this->dilationToolStripMenuItem1->Text = L"Dilation";
359 | this->dilationToolStripMenuItem1->Click += gcnew System::EventHandler(this, &MyForm::dilationToolStripMenuItem1_Click);
360 | //
361 | // erosionToolStripMenuItem
362 | //
363 | this->erosionToolStripMenuItem->Name = L"erosionToolStripMenuItem";
364 | this->erosionToolStripMenuItem->Size = System::Drawing::Size(120, 22);
365 | this->erosionToolStripMenuItem->Text = L"Erosion";
366 | this->erosionToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::erosionToolStripMenuItem_Click);
367 | //
368 | // openingToolStripMenuItem
369 | //
370 | this->openingToolStripMenuItem->Name = L"openingToolStripMenuItem";
371 | this->openingToolStripMenuItem->Size = System::Drawing::Size(120, 22);
372 | this->openingToolStripMenuItem->Text = L"Opening";
373 | this->openingToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::openingToolStripMenuItem_Click);
374 | //
375 | // closingToolStripMenuItem
376 | //
377 | this->closingToolStripMenuItem->Name = L"closingToolStripMenuItem";
378 | this->closingToolStripMenuItem->Size = System::Drawing::Size(120, 22);
379 | this->closingToolStripMenuItem->Text = L"Closing";
380 | this->closingToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::closingToolStripMenuItem_Click);
381 | //
382 | // angerToolStripMenuItem
383 | //
384 | this->angerToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {
385 | this->drawEdgeToolStripMenuItem,
386 | this->drawBlackEdgeToolStripMenuItem
387 | });
388 | this->angerToolStripMenuItem->Name = L"angerToolStripMenuItem";
389 | this->angerToolStripMenuItem->Size = System::Drawing::Size(184, 22);
390 | this->angerToolStripMenuItem->Text = L"Edge Detection";
391 | //
392 | // drawEdgeToolStripMenuItem
393 | //
394 | this->drawEdgeToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {
395 | this->drawWhiteEdgeToolStripMenuItem,
396 | this->drawBlackEdgeToolStripMenuItem1
397 | });
398 | this->drawEdgeToolStripMenuItem->Name = L"drawEdgeToolStripMenuItem";
399 | this->drawEdgeToolStripMenuItem->Size = System::Drawing::Size(115, 22);
400 | this->drawEdgeToolStripMenuItem->Text = L"Dilation";
401 | //
402 | // drawWhiteEdgeToolStripMenuItem
403 | //
404 | this->drawWhiteEdgeToolStripMenuItem->Name = L"drawWhiteEdgeToolStripMenuItem";
405 | this->drawWhiteEdgeToolStripMenuItem->Size = System::Drawing::Size(164, 22);
406 | this->drawWhiteEdgeToolStripMenuItem->Text = L"Draw White Edge";
407 | this->drawWhiteEdgeToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::drawWhiteEdgeToolStripMenuItem_Click);
408 | //
409 | // drawBlackEdgeToolStripMenuItem1
410 | //
411 | this->drawBlackEdgeToolStripMenuItem1->Name = L"drawBlackEdgeToolStripMenuItem1";
412 | this->drawBlackEdgeToolStripMenuItem1->Size = System::Drawing::Size(164, 22);
413 | this->drawBlackEdgeToolStripMenuItem1->Text = L"Draw Black Edge";
414 | this->drawBlackEdgeToolStripMenuItem1->Click += gcnew System::EventHandler(this, &MyForm::drawBlackEdgeToolStripMenuItem1_Click);
415 | //
416 | // drawBlackEdgeToolStripMenuItem
417 | //
418 | this->drawBlackEdgeToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {
419 | this->drawWhiteEdgeToolStripMenuItem1,
420 | this->drawBlackEdgeToolStripMenuItem2
421 | });
422 | this->drawBlackEdgeToolStripMenuItem->Name = L"drawBlackEdgeToolStripMenuItem";
423 | this->drawBlackEdgeToolStripMenuItem->Size = System::Drawing::Size(115, 22);
424 | this->drawBlackEdgeToolStripMenuItem->Text = L"Erosion";
425 | //
426 | // drawWhiteEdgeToolStripMenuItem1
427 | //
428 | this->drawWhiteEdgeToolStripMenuItem1->Name = L"drawWhiteEdgeToolStripMenuItem1";
429 | this->drawWhiteEdgeToolStripMenuItem1->Size = System::Drawing::Size(164, 22);
430 | this->drawWhiteEdgeToolStripMenuItem1->Text = L"Draw White Edge";
431 | this->drawWhiteEdgeToolStripMenuItem1->Click += gcnew System::EventHandler(this, &MyForm::drawWhiteEdgeToolStripMenuItem1_Click);
432 | //
433 | // drawBlackEdgeToolStripMenuItem2
434 | //
435 | this->drawBlackEdgeToolStripMenuItem2->Name = L"drawBlackEdgeToolStripMenuItem2";
436 | this->drawBlackEdgeToolStripMenuItem2->Size = System::Drawing::Size(164, 22);
437 | this->drawBlackEdgeToolStripMenuItem2->Text = L"Draw Black Edge";
438 | this->drawBlackEdgeToolStripMenuItem2->Click += gcnew System::EventHandler(this, &MyForm::drawBlackEdgeToolStripMenuItem2_Click);
439 | //
440 | // ıntegrationToolStripMenuItem
441 | //
442 | this->ıntegrationToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {
443 | this->ıntegrationWithZeroToolStripMenuItem,
444 | this->ıntegrationWith255ToolStripMenuItem
445 | });
446 | this->ıntegrationToolStripMenuItem->Name = L"ıntegrationToolStripMenuItem";
447 | this->ıntegrationToolStripMenuItem->Size = System::Drawing::Size(184, 22);
448 | this->ıntegrationToolStripMenuItem->Text = L"Integration";
449 | //
450 | // ıntegrationWithZeroToolStripMenuItem
451 | //
452 | this->ıntegrationWithZeroToolStripMenuItem->Name = L"ıntegrationWithZeroToolStripMenuItem";
453 | this->ıntegrationWithZeroToolStripMenuItem->Size = System::Drawing::Size(92, 22);
454 | this->ıntegrationWithZeroToolStripMenuItem->Text = L"0";
455 | this->ıntegrationWithZeroToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::ıntegrationWithZeroToolStripMenuItem_Click);
456 | //
457 | // ıntegrationWith255ToolStripMenuItem
458 | //
459 | this->ıntegrationWith255ToolStripMenuItem->Name = L"ıntegrationWith255ToolStripMenuItem";
460 | this->ıntegrationWith255ToolStripMenuItem->Size = System::Drawing::Size(92, 22);
461 | this->ıntegrationWith255ToolStripMenuItem->Text = L"255";
462 | this->ıntegrationWith255ToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::ıntegrationWith255ToolStripMenuItem_Click);
463 | //
464 | // objectRecogToolStripMenuItem
465 | //
466 | this->objectRecogToolStripMenuItem->Name = L"objectRecogToolStripMenuItem";
467 | this->objectRecogToolStripMenuItem->Size = System::Drawing::Size(184, 22);
468 | this->objectRecogToolStripMenuItem->Text = L"Object Recognition";
469 | this->objectRecogToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::objectRecogToolStripMenuItem_Click);
470 | //
471 | // findLineToolStripMenuItem
472 | //
473 | this->findLineToolStripMenuItem->Name = L"findLineToolStripMenuItem";
474 | this->findLineToolStripMenuItem->Size = System::Drawing::Size(184, 22);
475 | this->findLineToolStripMenuItem->Text = L"Find Line";
476 | this->findLineToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::findLineToolStripMenuItem_Click);
477 | //
478 | // ımageGeometryToolStripMenuItem
479 | //
480 | this->ımageGeometryToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(5) {
481 | this->moveToolStripMenuItem,
482 | this->rotateToolStripMenuItem, this->rotateAliasToolStripMenuItem, this->mirrorToolStripMenuItem, this->shearingToolStripMenuItem
483 | });
484 | this->ımageGeometryToolStripMenuItem->Name = L"ımageGeometryToolStripMenuItem";
485 | this->ımageGeometryToolStripMenuItem->Size = System::Drawing::Size(184, 22);
486 | this->ımageGeometryToolStripMenuItem->Text = L"Image Geometry";
487 | //
488 | // moveToolStripMenuItem
489 | //
490 | this->moveToolStripMenuItem->Name = L"moveToolStripMenuItem";
491 | this->moveToolStripMenuItem->Size = System::Drawing::Size(136, 22);
492 | this->moveToolStripMenuItem->Text = L"Move";
493 | this->moveToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::moveToolStripMenuItem_Click);
494 | //
495 | // rotateToolStripMenuItem
496 | //
497 | this->rotateToolStripMenuItem->Name = L"rotateToolStripMenuItem";
498 | this->rotateToolStripMenuItem->Size = System::Drawing::Size(136, 22);
499 | this->rotateToolStripMenuItem->Text = L"Rotate";
500 | this->rotateToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::rotateToolStripMenuItem_Click);
501 | //
502 | // rotateAliasToolStripMenuItem
503 | //
504 | this->rotateAliasToolStripMenuItem->Name = L"rotateAliasToolStripMenuItem";
505 | this->rotateAliasToolStripMenuItem->Size = System::Drawing::Size(136, 22);
506 | this->rotateAliasToolStripMenuItem->Text = L"Rotate Alias";
507 | this->rotateAliasToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::rotateAliasToolStripMenuItem_Click);
508 | //
509 | // mirrorToolStripMenuItem
510 | //
511 | this->mirrorToolStripMenuItem->Name = L"mirrorToolStripMenuItem";
512 | this->mirrorToolStripMenuItem->Size = System::Drawing::Size(136, 22);
513 | this->mirrorToolStripMenuItem->Text = L"Mirror";
514 | this->mirrorToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::mirrorToolStripMenuItem_Click);
515 | //
516 | // shearingToolStripMenuItem
517 | //
518 | this->shearingToolStripMenuItem->Name = L"shearingToolStripMenuItem";
519 | this->shearingToolStripMenuItem->Size = System::Drawing::Size(136, 22);
520 | this->shearingToolStripMenuItem->Text = L"Shearing";
521 | this->shearingToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::shearingToolStripMenuItem_Click);
522 | //
523 | // pictureBox3
524 | //
525 | this->pictureBox3->Location = System::Drawing::Point(402, 27);
526 | this->pictureBox3->Name = L"pictureBox3";
527 | this->pictureBox3->Size = System::Drawing::Size(384, 256);
528 | this->pictureBox3->TabIndex = 13;
529 | this->pictureBox3->TabStop = false;
530 | //
531 | // pictureBox2
532 | //
533 | this->pictureBox2->Location = System::Drawing::Point(12, 289);
534 | this->pictureBox2->Name = L"pictureBox2";
535 | this->pictureBox2->Size = System::Drawing::Size(384, 256);
536 | this->pictureBox2->TabIndex = 18;
537 | this->pictureBox2->TabStop = false;
538 | this->pictureBox2->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &MyForm::pictureBox2_MouseDown_1);
539 | this->pictureBox2->MouseUp += gcnew System::Windows::Forms::MouseEventHandler(this, &MyForm::pictureBox2_MouseUp_1);
540 | //
541 | // label2
542 | //
543 | this->label2->AutoSize = true;
544 | this->label2->Location = System::Drawing::Point(402, 289);
545 | this->label2->Name = L"label2";
546 | this->label2->Size = System::Drawing::Size(35, 13);
547 | this->label2->TabIndex = 20;
548 | this->label2->Text = L"label2";
549 | this->label2->Visible = false;
550 | //
551 | // numericUpDown1
552 | //
553 | this->numericUpDown1->Location = System::Drawing::Point(124, 22);
554 | this->numericUpDown1->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) { 360, 0, 0, 0 });
555 | this->numericUpDown1->Name = L"numericUpDown1";
556 | this->numericUpDown1->Size = System::Drawing::Size(41, 20);
557 | this->numericUpDown1->TabIndex = 21;
558 | //
559 | // label1
560 | //
561 | this->label1->AutoSize = true;
562 | this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
563 | static_cast(0)));
564 | this->label1->Location = System::Drawing::Point(2, 16);
565 | this->label1->Name = L"label1";
566 | this->label1->Size = System::Drawing::Size(116, 34);
567 | this->label1->TabIndex = 22;
568 | this->label1->Text = L"Please enter the \r\nangle for rotation";
569 | //
570 | // groupBox1
571 | //
572 | this->groupBox1->Controls->Add(this->numericUpDown2);
573 | this->groupBox1->Controls->Add(this->label3);
574 | this->groupBox1->Controls->Add(this->numericUpDown3);
575 | this->groupBox1->Controls->Add(this->label4);
576 | this->groupBox1->Controls->Add(this->label1);
577 | this->groupBox1->Controls->Add(this->numericUpDown1);
578 | this->groupBox1->Location = System::Drawing::Point(849, 27);
579 | this->groupBox1->Name = L"groupBox1";
580 | this->groupBox1->Size = System::Drawing::Size(171, 294);
581 | this->groupBox1->TabIndex = 23;
582 | this->groupBox1->TabStop = false;
583 | //
584 | // numericUpDown2
585 | //
586 | this->numericUpDown2->Location = System::Drawing::Point(124, 212);
587 | this->numericUpDown2->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) { 3, 0, 0, 0 });
588 | this->numericUpDown2->Name = L"numericUpDown2";
589 | this->numericUpDown2->Size = System::Drawing::Size(41, 20);
590 | this->numericUpDown2->TabIndex = 29;
591 | this->numericUpDown2->Value = System::Decimal(gcnew cli::array< System::Int32 >(4) { 1, 0, 0, 65536 });
592 | //
593 | // label3
594 | //
595 | this->label3->AutoSize = true;
596 | this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
597 | static_cast(0)));
598 | this->label3->Location = System::Drawing::Point(2, 122);
599 | this->label3->Name = L"label3";
600 | this->label3->Size = System::Drawing::Size(116, 153);
601 | this->label3->TabIndex = 28;
602 | this->label3->Text = L"Please enter the \r\ndirection for \r\nshearing\r\n(direction\r\n x=>0\r\n -x=>1 "
603 | L" \r\n y=>2\r\n -y=>3\r\n)";
604 | //
605 | // numericUpDown3
606 | //
607 | this->numericUpDown3->DecimalPlaces = 1;
608 | this->numericUpDown3->Increment = System::Decimal(gcnew cli::array< System::Int32 >(4) { 1, 0, 0, 65536 });
609 | this->numericUpDown3->Location = System::Drawing::Point(124, 78);
610 | this->numericUpDown3->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) { 15, 0, 0, 65536 });
611 | this->numericUpDown3->Minimum = System::Decimal(gcnew cli::array< System::Int32 >(4) { 1, 0, 0, 65536 });
612 | this->numericUpDown3->Name = L"numericUpDown3";
613 | this->numericUpDown3->Size = System::Drawing::Size(41, 20);
614 | this->numericUpDown3->TabIndex = 26;
615 | this->numericUpDown3->Value = System::Decimal(gcnew cli::array< System::Int32 >(4) { 1, 0, 0, 65536 });
616 | //
617 | // label4
618 | //
619 | this->label4->AutoSize = true;
620 | this->label4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
621 | static_cast(0)));
622 | this->label4->Location = System::Drawing::Point(2, 62);
623 | this->label4->Name = L"label4";
624 | this->label4->Size = System::Drawing::Size(116, 51);
625 | this->label4->TabIndex = 25;
626 | this->label4->Text = L"Please enter the \r\ncoefficients for \r\nshearing";
627 | //
628 | // MyForm
629 | //
630 | this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
631 | this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
632 | this->ClientSize = System::Drawing::Size(1032, 551);
633 | this->Controls->Add(this->groupBox1);
634 | this->Controls->Add(this->label2);
635 | this->Controls->Add(this->pictureBox2);
636 | this->Controls->Add(this->pictureBox3);
637 | this->Controls->Add(this->pictureBox1);
638 | this->Controls->Add(this->menuStrip1);
639 | this->Icon = (cli::safe_cast(resources->GetObject(L"$this.Icon")));
640 | this->MainMenuStrip = this->menuStrip1;
641 | this->Name = L"MyForm";
642 | this->Text = L"Image Processing";
643 | (cli::safe_cast(this->pictureBox1))->EndInit();
644 | this->menuStrip1->ResumeLayout(false);
645 | this->menuStrip1->PerformLayout();
646 | (cli::safe_cast(this->pictureBox3))->EndInit();
647 | (cli::safe_cast(this->pictureBox2))->EndInit();
648 | (cli::safe_cast(this->numericUpDown1))->EndInit();
649 | this->groupBox1->ResumeLayout(false);
650 | this->groupBox1->PerformLayout();
651 | (cli::safe_cast(this->numericUpDown2))->EndInit();
652 | (cli::safe_cast(this->numericUpDown3))->EndInit();
653 | this->ResumeLayout(false);
654 | this->PerformLayout();
655 |
656 | }
657 |
658 | #pragma endregion
659 | private: System::Void openToolStripMenuItem1_Click(System::Object^ sender, System::EventArgs^ e)
660 | {
661 | LPCTSTR input;
662 | CString str;
663 |
664 | if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
665 | {
666 | str = openFileDialog1->FileName;
667 | input = (LPCTSTR)str;
668 |
669 | Buffer = LoadBMP(Width, Height, Size, input); //foto'nun RGB bilgileriyle beraber tutuldu�u dizi
670 | Raw_Intensity = ConvertBMPToIntensity(Buffer, Width, Height); // foto�rafla ayn� boyutda ama ilk indisde foto�rag�n sol alt piksel bilgisi var
671 |
672 | pictureBox1->Width = Width;
673 | pictureBox1->Height = Height;
674 | pictureBox2->Width = Width;
675 | pictureBox2->Height = Height;
676 |
677 | this->pictureBox1->ImageLocation = openFileDialog1->FileName;
678 | }
679 |
680 | pictureBox3->Visible = false;
681 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
682 | //this->chart1->Location = System::Drawing::Point(12, pictureBox1->Bottom + 10);
683 |
684 |
685 | }
686 | private: System::Void clearToolStripMenuItem_Click_1(System::Object^ sender, System::EventArgs^ e) {
687 | pictureBox1->Image = nullptr;
688 | pictureBox1->Width = 384;
689 | pictureBox1->Height = 256;
690 |
691 | pictureBox2->Image = nullptr;
692 | pictureBox2->Width = 384;
693 | pictureBox2->Height = 256;
694 |
695 | pictureBox3->Image = nullptr;
696 | pictureBox3->Width = 384;
697 | pictureBox3->Height = 256;
698 |
699 | // chart1->Titles->Clear();
700 | // chart1->Series->Clear();
701 |
702 |
703 |
704 | }
705 | private: System::Void exitToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
706 | this->Close();
707 | }
708 | private: System::Void kMeansToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
709 | BYTE *k_means_buffer = new BYTE[Width * Height];
710 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
711 |
712 | unsigned int row, column;
713 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
714 | pictureBox2->Image = surface;
715 | Color c;
716 |
717 | for (row = 0; row < Height; row++)
718 | for (column = 0; column < Width; column++)
719 | {
720 | c = Color::FromArgb(k_means_buffer[(row * Width) + column], k_means_buffer[(row * Width) + column], k_means_buffer[(row * Width) + column]);
721 | surface->SetPixel(column, row, c);
722 | }
723 |
724 | }
725 | private: System::Void convertIntensityToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
726 |
727 | int row, column;
728 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
729 | pictureBox2->Image = surface;
730 | Color c;
731 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
732 | for (row = 0; row < Height; row++)
733 | for (column = 0; column < Width; column++)
734 | {
735 | c = Color::FromArgb(Raw_Intensity[row * Width + column], Raw_Intensity[row * Width + column], Raw_Intensity[row * Width + column]);
736 | surface->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
737 | }
738 |
739 | }
740 | private: System::Void pictureBox2_MouseDown_1(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
741 | zoom_width1 = e->X;
742 | zoom_height1 = e->Y;
743 | }
744 | private: System::Void pictureBox2_MouseUp_1(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
745 | pictureBox3->Visible = true;
746 |
747 | zoom_width2 = e->X;
748 | zoom_height2 = e->Y;
749 |
750 | int k = 0;
751 | int zoom_width = ((zoom_width2 - zoom_width1) * 2) + 1;
752 | int zoom_height = ((zoom_height2 - zoom_height1) * 2) + 1;
753 | BYTE *Zoom_buffer = new BYTE[zoom_width*zoom_height];
754 |
755 |
756 | pictureBox3->Width = zoom_width;
757 | pictureBox3->Height = zoom_height;
758 |
759 | for (int i = zoom_height1; i < zoom_height2; i++)
760 | {
761 | for (int m = 0; m < (zoom_width); m++)
762 | {
763 | Zoom_buffer[k] = 0;
764 | k++;
765 | }
766 | Zoom_buffer[k] = 0;
767 | k++;
768 | for (unsigned int j = zoom_width1; j < zoom_width2; j++)
769 | {
770 | Zoom_buffer[k] = Raw_Intensity[(i*Width) + j];
771 | k++;
772 | Zoom_buffer[k] = 0;
773 | k++;
774 | }
775 | }
776 |
777 | for (int m = 0; m < (zoom_width); m++)
778 | {
779 | Zoom_buffer[k] = 0;
780 | k++;
781 | }
782 |
783 | BYTE* Sonuc = new BYTE[zoom_width*zoom_height];
784 | Sonuc = Mask(Zoom_buffer, zoom_width, zoom_height, maske, 9, newWidth, newHeight);
785 |
786 | unsigned int row1, column1;
787 | Bitmap^ surface1 = gcnew Bitmap(pictureBox3->Width, pictureBox3->Height);
788 | pictureBox3->Image = surface1;
789 | Color c1;
790 | this->pictureBox3->Location = System::Drawing::Point(10, pictureBox1->Bottom+ 10);
791 |
792 | for (row1 = 0; row1 < newHeight; row1++)
793 | for (column1 = 0; column1 < newWidth; column1++)
794 | {
795 | c1 = Color::FromArgb(Sonuc[(row1*newWidth) + column1], Sonuc[(row1*newWidth) + column1], Sonuc[(row1*newWidth) + column1]);
796 | surface1->SetPixel(column1, row1, c1);
797 | }
798 | }
799 | private: System::Void openingToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
800 | BYTE *k_means_buffer = new BYTE[Width * Height];
801 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
802 |
803 | BYTE *erosion_buffer = new BYTE[Width * Height];
804 | erosion_buffer = erosion(k_means_buffer, Width, Height);
805 |
806 | BYTE *dilation_buffer = new BYTE[Width * Height];
807 | dilation_buffer = dilation(erosion_buffer, Width, Height);
808 |
809 | pictureBox2->Width = Width;
810 | pictureBox2->Height = Height;
811 |
812 | unsigned int row, column;
813 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
814 | pictureBox2->Image = surface;
815 | Color c;
816 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
817 |
818 | for (row = 0; row < Height; row++)
819 | for (column = 0; column < Width; column++)
820 | {
821 | c = Color::FromArgb(dilation_buffer[(row * Width) + column], dilation_buffer[(row * Width) + column], dilation_buffer[(row * Width) + column]);
822 | surface->SetPixel(column, row, c);
823 | }
824 | }
825 | private: System::Void closingToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
826 | BYTE *k_means_buffer = new BYTE[Width * Height];
827 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
828 |
829 | BYTE *dilation_buffer = new BYTE[Width * Height];
830 | dilation_buffer = dilation(k_means_buffer , Width, Height);
831 |
832 | BYTE *erosion_buffer = new BYTE[Width * Height];
833 | erosion_buffer = erosion(dilation_buffer, Width, Height);
834 |
835 |
836 | pictureBox2->Width = Width;
837 | pictureBox2->Height = Height;
838 |
839 | unsigned int row, column;
840 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
841 | pictureBox2->Image = surface;
842 | Color c;
843 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
844 |
845 | for (row = 0; row < Height; row++)
846 | for (column = 0; column < Width; column++)
847 | {
848 | c = Color::FromArgb(dilation_buffer[(row * Width) + column], dilation_buffer[(row * Width) + column], dilation_buffer[(row * Width) + column]);
849 | surface->SetPixel(column, row, c);
850 | }
851 | }
852 | private: System::Void dilationToolStripMenuItem1_Click(System::Object^ sender, System::EventArgs^ e) {
853 | BYTE *k_means_buffer = new BYTE[Width * Height];
854 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
855 |
856 | BYTE *dilation_buffer = new BYTE[Width * Height];
857 | dilation_buffer = dilation(k_means_buffer, Width, Height);
858 |
859 | pictureBox2->Width = Width;
860 | pictureBox2->Height = Height;
861 |
862 | unsigned int row, column;
863 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
864 | pictureBox2->Image = surface;
865 | Color c;
866 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
867 |
868 | for (row = 0; row < Height; row++)
869 | for (column = 0; column < Width; column++)
870 | {
871 | c = Color::FromArgb(dilation_buffer[(row * Width) + column], dilation_buffer[(row * Width) + column], dilation_buffer[(row * Width) + column]);
872 | surface->SetPixel(column, row, c);
873 | }
874 | }
875 | private: System::Void erosionToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
876 | BYTE *k_means_buffer = new BYTE[Width * Height];
877 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
878 |
879 | BYTE *erosion_buffer = new BYTE[Width * Height];
880 | erosion_buffer = erosion(k_means_buffer, Width, Height);
881 |
882 | pictureBox2->Width = Width;
883 | pictureBox2->Height = Height;
884 |
885 | unsigned int row, column;
886 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
887 | pictureBox2->Image = surface;
888 | Color c;
889 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
890 |
891 | for (row = 0; row < Height; row++)
892 | for (column = 0; column < Width; column++)
893 | {
894 | c = Color::FromArgb(erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column]);
895 | surface->SetPixel(column, row, c);
896 | }
897 | }
898 | private: System::Void setHistogramToolStripMenuItem1_Click(System::Object^ sender, System::EventArgs^ e) {
899 |
900 | BYTE* t_intensity = new BYTE[Width*Height];
901 | for (unsigned int i = 0; i < Height*Width; i++)
902 | t_intensity[i] = Raw_Intensity[i];
903 |
904 | int *hist = histogram(t_intensity, Width, Height);
905 |
906 | Histogram^ histogram1 = gcnew Histogram;
907 | histogram1->setHistogram(hist);
908 | histogram1->Show();
909 | }
910 | private: System::Void histogramEqualizationToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
911 |
912 |
913 | BYTE* t_intensity = new BYTE[Width*Height];
914 | for (unsigned int i = 0; i < Height*Width; i++)
915 | t_intensity[i] = Raw_Intensity[i];
916 |
917 | BYTE* new_intensity = HistogramEqualization(t_intensity, Width, Height);
918 |
919 | int *tempHistogram = histogram(new_intensity, Width, Height);
920 |
921 | Bitmap^ img = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
922 | pictureBox2->Image = img;
923 | Color c;
924 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
925 |
926 | int temp;
927 |
928 | for (unsigned int row = 0; row < Height; row++)
929 | for (unsigned int column = 0; column < Width; column++)
930 | {
931 | temp = row * Width + column;
932 | c = Color::FromArgb(new_intensity[temp], new_intensity[temp], new_intensity[temp]);
933 | img->SetPixel(column, row, c);
934 | }
935 |
936 | EqualHistogram^ histogram1 = gcnew EqualHistogram;
937 | histogram1->equalHistogram(tempHistogram);
938 | histogram1->Show();
939 |
940 | delete[]tempHistogram;
941 | delete[]new_intensity;
942 | }
943 | private: System::Void lineToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
944 | cizgiCiz(Raw_Intensity, 200, 30, 30, 200, Width, Height);
945 |
946 | int row, column;
947 | Bitmap ^ surface3 = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
948 | pictureBox2->Image = surface3;
949 | Color c;
950 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
951 |
952 | for (row = 0; row < Height; row++)
953 | for (column = 0; column < Width; column++)
954 | {
955 | c = Color::FromArgb(Raw_Intensity[row * Width + column], Raw_Intensity[row * Width + column], Raw_Intensity[row * Width + column]);
956 | surface3->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
957 | }
958 |
959 | }
960 | private: System::Void circleToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
961 | cemberCiz(Raw_Intensity, 200, 200, 50, Width, Height);
962 |
963 | int row, column;
964 | Bitmap ^ surface3 = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
965 | pictureBox2->Image = surface3;
966 | Color c;
967 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
968 |
969 | for (row = 0; row < Height; row++)
970 | for (column = 0; column < Width; column++)
971 | {
972 | c = Color::FromArgb(Raw_Intensity[row * Width + column], Raw_Intensity[row * Width + column], Raw_Intensity[row * Width + column]);
973 | surface3->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
974 | }
975 | }
976 | private: System::Void drawWhiteEdgeToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
977 | BYTE *k_means_buffer = new BYTE[Width * Height];
978 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
979 |
980 | BYTE *erosion_buffer = new BYTE[Width * Height];
981 | erosion_buffer = Sinirlar(k_means_buffer, Width, Height, 0);
982 |
983 | pictureBox2->Width = Width;
984 | pictureBox2->Height = Height;
985 |
986 | unsigned int row, column;
987 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
988 | pictureBox2->Image = surface;
989 | Color c;
990 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
991 |
992 | for (row = 0; row < Height; row++)
993 | for (column = 0; column < Width; column++)
994 | {
995 | c = Color::FromArgb(erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column]);
996 | surface->SetPixel(column, row, c);
997 | }
998 | }
999 | private: System::Void drawBlackEdgeToolStripMenuItem1_Click(System::Object^ sender, System::EventArgs^ e) {
1000 |
1001 | BYTE *k_means_buffer = new BYTE[Width * Height];
1002 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
1003 |
1004 | BYTE *erosion_buffer = new BYTE[Width * Height];
1005 | erosion_buffer = Sinirlar(k_means_buffer, Width, Height,1);
1006 |
1007 | pictureBox2->Width = Width;
1008 | pictureBox2->Height = Height;
1009 |
1010 | unsigned int row, column;
1011 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1012 | pictureBox2->Image = surface;
1013 | Color c;
1014 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1015 |
1016 | for (row = 0; row < Height; row++)
1017 | for (column = 0; column < Width; column++)
1018 | {
1019 | c = Color::FromArgb(erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column]);
1020 | surface->SetPixel(column, row, c);
1021 | }
1022 | }
1023 | private: System::Void drawWhiteEdgeToolStripMenuItem1_Click(System::Object^ sender, System::EventArgs^ e) {
1024 | BYTE *k_means_buffer = new BYTE[Width * Height];
1025 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
1026 |
1027 | BYTE *erosion_buffer = new BYTE[Width * Height];
1028 | erosion_buffer = Sinirlar(k_means_buffer, Width, Height, 2);
1029 |
1030 | pictureBox2->Width = Width;
1031 | pictureBox2->Height = Height;
1032 |
1033 | unsigned int row, column;
1034 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1035 | pictureBox2->Image = surface;
1036 | Color c;
1037 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1038 |
1039 | for (row = 0; row < Height; row++)
1040 | for (column = 0; column < Width; column++)
1041 | {
1042 | c = Color::FromArgb(erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column]);
1043 | surface->SetPixel(column, row, c);
1044 | }
1045 | }
1046 | private: System::Void drawBlackEdgeToolStripMenuItem2_Click(System::Object^ sender, System::EventArgs^ e) {
1047 |
1048 | BYTE *k_means_buffer = new BYTE[Width * Height];
1049 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
1050 |
1051 | BYTE *erosion_buffer = new BYTE[Width * Height];
1052 | erosion_buffer = Sinirlar(k_means_buffer, Width, Height, 3);
1053 |
1054 | pictureBox2->Width = Width;
1055 | pictureBox2->Height = Height;
1056 |
1057 | unsigned int row, column;
1058 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1059 | pictureBox2->Image = surface;
1060 | Color c;
1061 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1062 |
1063 | for (row = 0; row < Height; row++)
1064 | for (column = 0; column < Width; column++)
1065 | {
1066 | c = Color::FromArgb(erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column]);
1067 | surface->SetPixel(column, row, c);
1068 | }
1069 | }
1070 | private: System::Void ıntegrationWithZeroToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1071 | BYTE *k_means_buffer = new BYTE[Width * Height];
1072 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
1073 |
1074 | BYTE *erosion_buffer = new BYTE[Width * Height];
1075 | erosion_buffer = Tumleme(k_means_buffer, Width, Height, 0);
1076 |
1077 | pictureBox2->Width = Width;
1078 | pictureBox2->Height = Height;
1079 |
1080 | unsigned int row, column;
1081 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1082 | pictureBox2->Image = surface;
1083 | Color c;
1084 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1085 |
1086 | for (row = 0; row < Height; row++)
1087 | for (column = 0; column < Width; column++)
1088 | {
1089 | c = Color::FromArgb(erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column]);
1090 | surface->SetPixel(column, row, c);
1091 | }
1092 | }
1093 | private: System::Void ıntegrationWith255ToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1094 | BYTE *k_means_buffer = new BYTE[Width * Height];
1095 | k_means_buffer = k_means(Raw_Intensity, Width, Height);
1096 |
1097 | BYTE *erosion_buffer = new BYTE[Width * Height];
1098 | erosion_buffer = Tumleme(k_means_buffer, Width, Height, 255);
1099 |
1100 | pictureBox2->Width = Width;
1101 | pictureBox2->Height = Height;
1102 |
1103 | unsigned int row, column;
1104 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1105 | pictureBox2->Image = surface;
1106 | Color c;
1107 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1108 |
1109 | for (row = 0; row < Height; row++)
1110 | for (column = 0; column < Width; column++)
1111 | {
1112 | c = Color::FromArgb(erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column], erosion_buffer[(row * Width) + column]);
1113 | surface->SetPixel(column, row, c);
1114 | }
1115 | }
1116 | private: System::Void objectRecogToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1117 |
1118 | BYTE* t_intensity = new BYTE[Width*Height];
1119 | for (unsigned int i = 0; i < Height*Width; i++)
1120 | t_intensity[i] = Raw_Intensity[i];
1121 |
1122 | int label;
1123 | BYTE* binary = k_means(t_intensity, Width, Height);
1124 |
1125 | BYTE *dilation_buffer = new BYTE[Width * Height];
1126 | dilation_buffer = dilation(binary, Width, Height);
1127 |
1128 | BYTE *erosion_buffer = new BYTE[Width * Height];
1129 | erosion_buffer = erosion(dilation_buffer, Width, Height);
1130 |
1131 | BYTE* Object = ObjectDetect(erosion_buffer, Width, Height, label);
1132 |
1133 | Bitmap^ img = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1134 | pictureBox2->Image = img;
1135 | Color c;
1136 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1137 |
1138 | int temp;
1139 | this->label2->Visible = true;
1140 | label2->Text =label + " object detected!";
1141 |
1142 | this->label2->Location = System::Drawing::Point(pictureBox2->Left + 10, pictureBox2->Bottom + 10);
1143 | for (unsigned int row = 0; row < Height; row++)
1144 | for (unsigned int column = 0; column < Width; column++)
1145 | {
1146 | temp = row * Width + column;
1147 | c = Color::FromArgb(Object[temp], Object[temp], Object[temp]);
1148 | img->SetPixel(column, row, c);
1149 | }
1150 | }
1151 | private: System::Void findLineToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1152 |
1153 |
1154 | canny_Andhough(Raw_Intensity, Width, Height);
1155 |
1156 | Canny^ form = gcnew Canny;
1157 | form->findLine();
1158 | form->Show();
1159 | }
1160 | private: System::Void moveToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1161 |
1162 | BYTE *MovedBuff = new BYTE[Width * Height];
1163 | MovedBuff = MoveImage(Raw_Intensity, Width, Height);
1164 |
1165 | int row, column;
1166 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1167 | pictureBox2->Image = surface;
1168 | Color c;
1169 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1170 | for (row = 0; row < Height; row++)
1171 | for (column = 0; column < Width; column++)
1172 | {
1173 | c = Color::FromArgb(MovedBuff[row * Width + column], MovedBuff[row * Width + column], MovedBuff[row * Width + column]);
1174 | surface->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
1175 | }
1176 | }
1177 | private: System::Void rotateToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1178 |
1179 | int angle= (int) numericUpDown1->Value;
1180 |
1181 | BYTE *RotateBuff = new BYTE[Width * Height];
1182 | RotateBuff = RotateImage(Raw_Intensity, Width, Height, angle);
1183 |
1184 | int row, column;
1185 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1186 | pictureBox2->Image = surface;
1187 | Color c;
1188 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1189 | for (row = 0; row < Height; row++)
1190 | for (column = 0; column < Width; column++)
1191 | {
1192 | c = Color::FromArgb(RotateBuff[row * Width + column], RotateBuff[row * Width + column], RotateBuff[row * Width + column]);
1193 | surface->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
1194 | }
1195 | }
1196 | private: System::Void rotateAliasToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1197 |
1198 | int angle = (int)numericUpDown1->Value;
1199 |
1200 | BYTE *RotateBuff = new BYTE[Width * Height];
1201 | RotateBuff = RotateImageAlias(Raw_Intensity, Width, Height, angle);
1202 |
1203 | int row, column;
1204 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1205 | pictureBox2->Image = surface;
1206 | Color c;
1207 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1208 | for (row = 0; row < Height; row++)
1209 | for (column = 0; column < Width; column++)
1210 | {
1211 | c = Color::FromArgb(RotateBuff[row * Width + column], RotateBuff[row * Width + column], RotateBuff[row * Width + column]);
1212 | surface->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
1213 | }
1214 | }
1215 | private: System::Void mirrorToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1216 | int angle = (int)numericUpDown1->Value;
1217 |
1218 | BYTE *testBuff = new BYTE[Width * Height];
1219 | testBuff = MirrorImage(Raw_Intensity, Width, Height, angle);
1220 |
1221 | int row, column;
1222 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1223 | pictureBox2->Image = surface;
1224 | Color c;
1225 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1226 | for (row = 0; row < Height; row++)
1227 | for (column = 0; column < Width; column++)
1228 | {
1229 | c = Color::FromArgb(testBuff[row * Width + column], testBuff[row * Width + column], testBuff[row * Width + column]);
1230 | surface->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
1231 | }
1232 | }
1233 | private: System::Void shearingToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
1234 | double coefficients = (double)numericUpDown3->Value;
1235 | int direction = (int)numericUpDown2->Value;
1236 | BYTE *testBuff = new BYTE[Width * Height];
1237 | testBuff = Shearing(Raw_Intensity, Width, Height, coefficients, direction);
1238 |
1239 | int row, column;
1240 | Bitmap ^ surface = gcnew Bitmap(pictureBox2->Width, pictureBox2->Height);
1241 | pictureBox2->Image = surface;
1242 | Color c;
1243 | this->pictureBox2->Location = System::Drawing::Point(pictureBox1->Left + pictureBox1->Width + 10, 27);
1244 | for (row = 0; row < Height; row++)
1245 | for (column = 0; column < Width; column++)
1246 | {
1247 | c = Color::FromArgb(testBuff[row * Width + column], testBuff[row * Width + column], testBuff[row * Width + column]);
1248 | surface->SetPixel(column, row, c); // x ve y korinatlar� 3. parametre ise rengi
1249 | }
1250 | }
1251 |
1252 | };
1253 | }
1254 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/hello.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/hello.bmp
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/humoments.cpp:
--------------------------------------------------------------------------------
1 | #include "humoments.h"
2 |
3 | HuMoments::HuMoments(int *array, int width, int height)
4 | {
5 | this->width = width; this->height = height;
6 | object = new int[width*height];
7 | normalizeObject(array);
8 | }
9 |
10 | HuMoments::~HuMoments()
11 | {
12 | delete[] object;
13 | }
14 |
15 | float HuMoments::calcMoment(int p, int q)
16 | {
17 | float sum = 0;
18 | for (int x = 0; x < width; x++)
19 | {
20 | for (int y = 0; y < height; y++)
21 | {
22 | sum += object[x + y * width] * pow(x, p)*pow(y, q);
23 | }
24 | }
25 | return sum;
26 | }
27 |
28 | void HuMoments::calcOrgins()
29 | {
30 | orginOfX = calcMoment(1, 0) / calcMoment(0, 0);
31 | orginOfY = calcMoment(0, 1) / calcMoment(0, 0);
32 | }
33 |
34 | float HuMoments::calcOrginMoment(int p, int q)
35 | {
36 | float sum = 0;
37 | for (int x = 0; x < width; x++)
38 | {
39 | for (int y = 0; y < height; y++)
40 | {
41 | sum += object[x + y * width] * pow((x - orginOfX), p)*pow((y - orginOfY), q);
42 | }
43 | }
44 | return sum;
45 | }
46 |
47 | float HuMoments::calcNormalizedMoment(int p, int q)
48 | {
49 | float temp = ((p + q) / 2) + 1;
50 | return calcOrginMoment(p, q) / pow(calcMoment(0, 0), temp);
51 | }
52 |
53 | void HuMoments::calcInvariantMoments()
54 | {
55 | invariantMoments[0] = calcNormalizedMoment(2, 0) + calcNormalizedMoment(0, 2);
56 | invariantMoments[1] = pow((calcNormalizedMoment(2, 0) - calcNormalizedMoment(0, 2)), 2) + 4 * (pow(calcNormalizedMoment(1, 1), 2));
57 | invariantMoments[2] = pow((calcNormalizedMoment(3, 0) - 3 * calcNormalizedMoment(1, 2)), 2) + pow((3 * calcNormalizedMoment(2, 1) - calcNormalizedMoment(0, 3)), 2);
58 | invariantMoments[3] = pow((calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2)), 2) + pow((calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3)), 2);
59 | invariantMoments[4] = (calcNormalizedMoment(3, 0) - 3 * calcNormalizedMoment(1, 2)) *(calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2)) *(pow(calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2), 2) - 3 * pow(calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3), 2)) + (3 * calcNormalizedMoment(2, 1) - calcNormalizedMoment(0, 3)) * (calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3)) *(pow(3 * (calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2)), 2) - pow(calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3), 2));
60 | invariantMoments[5] = (calcNormalizedMoment(2, 0) - calcNormalizedMoment(0, 2)) * (pow(calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2), 2) - pow(calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3), 2)) + (4 * calcNormalizedMoment(1, 1) * (calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2)) *calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3));
61 | invariantMoments[6] = (3 * calcNormalizedMoment(2, 1) - calcNormalizedMoment(0, 3)) * (calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2)) * (pow(calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2), 2) - 3 * pow(calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3), 2)) - (calcNormalizedMoment(3, 0) - 3 * calcNormalizedMoment(1, 2)) * (calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3)) *(3 * pow(calcNormalizedMoment(3, 0) + calcNormalizedMoment(1, 2), 2) - pow(calcNormalizedMoment(2, 1) + calcNormalizedMoment(0, 3), 2));
62 | }
63 |
64 | float *HuMoments::getInvariantMoments()
65 | {
66 | return invariantMoments;
67 | }
68 |
69 | void HuMoments::normalizeObject(int *arr)
70 | {
71 | for (int i = 0; i < width*height; i++)
72 | {
73 | if (arr[i] > 4)
74 | object[i] = 1;
75 | else
76 | object[i] = 0;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/humoments.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Example
3 | * arr is an array of object and arr must be binary image
4 | * width and height is integer
5 | * HuMoments obj1(arr,width,height);
6 | * obj1.calcOrgins();
7 | * obj1.calcInvariantMoments();
8 | * float moments[7];
9 | * float *moments = obj1.getInvariantMoments();
10 | */
11 |
12 | #ifndef HUMOMENTS_H
13 | #define HUMOMENTS_H
14 |
15 | #include
16 |
17 | class HuMoments
18 | {
19 | public:
20 | HuMoments(int *array, int width, int height);
21 | ~HuMoments();
22 | float calcMoment(int p, int q);
23 | void calcOrgins();
24 | float calcOrginMoment(int p, int q);
25 | float calcNormalizedMoment(int p, int q);
26 | void calcInvariantMoments();
27 | float *getInvariantMoments();
28 | void normalizeObject(int *arr);
29 |
30 | private:
31 | int width, height;
32 | float orginOfX, orginOfY;
33 | int *object;
34 | float invariantMoments[7];
35 | };
36 |
37 | #endif // HUMOMENTS_H
38 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/images/zoomed.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/images/zoomed.bmp
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/imge_bmp.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include "humoments.h"
7 | using namespace std;
8 |
9 | #define PI 3.14159265
10 |
11 | BYTE* LoadBMP(int% width, int% height, long% size, LPCTSTR bmpfile)
12 | {
13 | // declare bitmap structures
14 | BITMAPFILEHEADER bmpheader;
15 | BITMAPINFOHEADER bmpinfo;
16 | // value to be used in ReadFile funcs
17 | DWORD bytesread;
18 | // open file to read from
19 | HANDLE file = CreateFile(bmpfile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
20 | if (NULL == file)
21 | return NULL; // coudn't open file
22 |
23 | // read file header
24 | if (ReadFile(file, &bmpheader, sizeof(BITMAPFILEHEADER), &bytesread, NULL) == false) {
25 | CloseHandle(file);
26 | return NULL;
27 | }
28 | //read bitmap info
29 | if (ReadFile(file, &bmpinfo, sizeof(BITMAPINFOHEADER), &bytesread, NULL) == false) {
30 | CloseHandle(file);
31 | return NULL;
32 | }
33 | // check if file is actually a bmp
34 | if (bmpheader.bfType != 'MB') {
35 | CloseHandle(file);
36 | return NULL;
37 | }
38 | // get image measurements
39 | width = bmpinfo.biWidth;
40 | height = abs(bmpinfo.biHeight);
41 |
42 | // check if bmp is uncompressed
43 | if (bmpinfo.biCompression != BI_RGB) {
44 | CloseHandle(file);
45 | return NULL;
46 | }
47 | // check if we have 24 bit bmp
48 | if (bmpinfo.biBitCount != 24) {
49 | CloseHandle(file);
50 | return NULL;
51 | }
52 |
53 | // create buffer to hold the data
54 | size = bmpheader.bfSize - bmpheader.bfOffBits;
55 | BYTE* Buffer = new BYTE[size];
56 | // move file pointer to start of bitmap data
57 | SetFilePointer(file, bmpheader.bfOffBits, NULL, FILE_BEGIN);
58 | // read bmp data
59 | if (ReadFile(file, Buffer, size, &bytesread, NULL) == false) {
60 | delete[] Buffer;
61 | CloseHandle(file);
62 | return NULL;
63 | }
64 | // everything successful here: close file and return buffer
65 | CloseHandle(file);
66 |
67 | return Buffer;
68 | }//LOADPMB
69 |
70 | bool SaveBMP(BYTE* Buffer, int width, int height, long paddedsize, LPCTSTR bmpfile)
71 | {
72 | // declare bmp structures
73 | BITMAPFILEHEADER bmfh;
74 | BITMAPINFOHEADER info;
75 |
76 | // andinitialize them to zero
77 | memset(&bmfh, 0, sizeof(BITMAPFILEHEADER));
78 | memset(&info, 0, sizeof(BITMAPINFOHEADER));
79 |
80 | // fill the fileheader with data
81 | bmfh.bfType = 0x4d42; // 0x4d42 = 'BM'
82 | bmfh.bfReserved1 = 0;
83 | bmfh.bfReserved2 = 0;
84 | bmfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + paddedsize;
85 | bmfh.bfOffBits = 0x36; // number of bytes to start of bitmap bits
86 |
87 | // fill the infoheader
88 |
89 | info.biSize = sizeof(BITMAPINFOHEADER);
90 | info.biWidth = width;
91 | info.biHeight = height;
92 | info.biPlanes = 1; // we only have one bitplane
93 | info.biBitCount = 24; // RGB mode is 24 bits
94 | info.biCompression = BI_RGB;
95 | info.biSizeImage = 0; // can be 0 for 24 bit images
96 | info.biXPelsPerMeter = 0x0ec4; // paint and PSP use this values
97 | info.biYPelsPerMeter = 0x0ec4;
98 | info.biClrUsed = 0; // we are in RGB mode and have no palette
99 | info.biClrImportant = 0; // all colors are important
100 |
101 | // now we open the file to write to
102 | HANDLE file = CreateFile(bmpfile, GENERIC_WRITE, FILE_SHARE_READ,
103 | NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
104 | if (file == NULL) {
105 | CloseHandle(file);
106 | return false;
107 | }
108 | // write file header
109 | unsigned long bwritten;
110 | if (WriteFile(file, &bmfh, sizeof(BITMAPFILEHEADER), &bwritten, NULL) == false) {
111 | CloseHandle(file);
112 | return false;
113 | }
114 | // write infoheader
115 | if (WriteFile(file, &info, sizeof(BITMAPINFOHEADER), &bwritten, NULL) == false) {
116 | CloseHandle(file);
117 | return false;
118 | }
119 | // write image data
120 | if (WriteFile(file, Buffer, paddedsize, &bwritten, NULL) == false) {
121 | CloseHandle(file);
122 | return false;
123 | }
124 |
125 | // and close file
126 | CloseHandle(file);
127 |
128 | return true;
129 | } // SaveBMP
130 |
131 | BYTE* ConvertBMPToIntensity(BYTE* Buffer, int width, int height)
132 | {
133 | // first make sure the parameters are valid
134 | if ((NULL == Buffer) || (width == 0) || (height == 0))
135 | return NULL;
136 |
137 | // find the number of padding bytes
138 |
139 | int padding = 0;
140 | int scanlinebytes = width * 3;
141 | while ((scanlinebytes + padding) % 4 != 0) // DWORD = 4 bytes
142 | padding++;
143 | // get the padded scanline width
144 | int psw = scanlinebytes + padding;
145 |
146 | // create new buffer
147 | BYTE* newbuf = new BYTE[width*height];
148 |
149 | // now we loop trough all bytes of the original buffer,
150 | // swap the R and B bytes and the scanlines
151 | long bufpos = 0;
152 | long newpos = 0;
153 | for (int row = 0; row < height; row++)
154 | for (int column = 0; column < width; column++) {
155 | newpos = row * width + column;
156 | bufpos = (height - row - 1) * psw + column * 3;
157 | newbuf[newpos] = BYTE(0.11*Buffer[bufpos + 2] + 0.59*Buffer[bufpos + 1] + 0.3*Buffer[bufpos]);
158 | }
159 |
160 | return newbuf;
161 | }//ConvetBMPToIntensity
162 |
163 | BYTE* ConvertIntensityToBMP(BYTE* Buffer, int width, int height, long* newsize)
164 | {
165 | // first make sure the parameters are valid
166 | if ((NULL == Buffer) || (width == 0) || (height == 0))
167 | return NULL;
168 |
169 | // now we have to find with how many bytes
170 | // we have to pad for the next DWORD boundary
171 |
172 | int padding = 0;
173 | int scanlinebytes = width * 3;
174 | while ((scanlinebytes + padding) % 4 != 0) // DWORD = 4 bytes
175 | padding++;
176 | // get the padded scanline width
177 | int psw = scanlinebytes + padding;
178 | // we can already store the size of the new padded buffer
179 | *newsize = height * psw;
180 |
181 | // and create new buffer
182 | BYTE* newbuf = new BYTE[*newsize];
183 |
184 | // fill the buffer with zero bytes then we dont have to add
185 | // extra padding zero bytes later on
186 | memset(newbuf, 0, *newsize);
187 |
188 | // now we loop trough all bytes of the original buffer,
189 | // swap the R and B bytes and the scanlines
190 | long bufpos = 0;
191 | long newpos = 0;
192 | for (int row = 0; row < height; row++)
193 | for (int column = 0; column < width; column++) {
194 | bufpos = row * width + column; // position in original buffer
195 | newpos = (height - row - 1) * psw + column * 3; // position in padded buffer
196 | newbuf[newpos] = Buffer[bufpos]; // blue
197 | newbuf[newpos + 1] = Buffer[bufpos]; // green
198 | newbuf[newpos + 2] = Buffer[bufpos]; // red
199 | }
200 |
201 | return newbuf;
202 | } //ConvertIntensityToBMP
203 |
204 | BYTE *zoom(BYTE * Buffer, unsigned int zoom_width1, unsigned int zoom_width2, unsigned int zoom_height1, unsigned int zoom_height2, unsigned int Width)
205 | {
206 | int first_index = 0;
207 | int k = 0;
208 | int zoom_width;
209 | int zoom_height;
210 | BYTE *Zoom_buffer;
211 | if (zoom_height2 > zoom_height1 && zoom_width2 > zoom_width1) {
212 | zoom_width = ((zoom_width2 - zoom_width1) + 1);
213 | zoom_height = ((zoom_height2 - zoom_height1) + 1);
214 | Zoom_buffer = new BYTE[(2 * zoom_height - 1)*(2 * zoom_width - 1)];
215 |
216 | for (int i = zoom_height1; i < zoom_height2; i++)
217 | {
218 | for (int j = zoom_width1; j < zoom_width2+1; j++)
219 | {
220 | Zoom_buffer[k] = Buffer[(i*Width) + j];
221 | k++;
222 | if (j == zoom_width2)
223 | break;
224 |
225 | double gecici_bellek = ((Buffer[(i*Width) + j]) + (Buffer[(i*Width) + (j + 1)])) / 2;
226 | Zoom_buffer[k] = gecici_bellek;
227 | k++;
228 | }
229 | k = k + ((2 * zoom_width) - 1);
230 | }
231 |
232 | k = ((2 * zoom_width) - 1);
233 |
234 | for (int i = zoom_height1; i < zoom_height2; i++)
235 | {
236 | for (int m = 0; m < 2 * zoom_width - 1; m++)
237 | {
238 | double gecici_bellek = (Zoom_buffer[first_index + m] + Zoom_buffer[first_index + 2 * (2 * zoom_width - 1) + m]) / 2;
239 | Zoom_buffer[k] = gecici_bellek;
240 | k++;
241 | }
242 | first_index = first_index + 2 * (2 * zoom_width - 1);
243 | k = k + ((2 * zoom_width) - 1);
244 | }
245 | }
246 | return Zoom_buffer;
247 |
248 | }//zoom
249 |
250 | BYTE* Mask(BYTE* Buffer, int uzunluk, int yukseklik, float mask[], int maskElemanSayisi, long% yeniUzunluk, long% yeniYukseklik)
251 | {
252 | int N = (int)(sqrt(maskElemanSayisi)); // N = matrisin kaça kaçlýk olduðu gösterir N x N
253 |
254 | if (N*N != maskElemanSayisi) return NULL; // Mask kare matris deðilse iþlem yapma
255 | if (N % 2 == 0) return NULL; // Mask matrisi (2n+1) türünde yani tek matris deðilse (3x3,5x5,7x7 .... gibi deðilse ) iþlem yapma
256 |
257 | BYTE *buf = new BYTE[(uzunluk - N + 1)*(yukseklik - N + 1)]; // iþlem yaptýktan sonra ki görüntü içeriðimizi saklayacaðýmýz alan
258 |
259 | int xKonum = 0, yKonum = 0; // mask gezinme esnasýndaki görüntüdeki konumlarý
260 |
261 | yeniUzunluk = uzunluk - N + 1;
262 | yeniYukseklik = yukseklik - N + 1;
263 |
264 |
265 | for (int i = 0; i < (uzunluk - N + 1)*(yukseklik - N + 1); i++) // Maský görüntü üzerinde gezdirme iþlemi
266 | {
267 | float deger = 0.0;
268 | for (int j = 0; j < N; j++)
269 | {
270 | for (int k = 0; k < N; k++)
271 | {
272 | deger = deger + mask[k + j*N] * (int)(Buffer[(xKonum + k) + (yKonum + j)*uzunluk]);
273 | }
274 | }
275 | if (xKonum == uzunluk - N)
276 | {
277 | yKonum++;
278 | xKonum = 0;
279 | }
280 | else
281 | {
282 | xKonum++;
283 | }
284 | buf[i] = BYTE((int)(deger));
285 | }
286 |
287 | return buf;
288 | }
289 |
290 | void cizgiCiz(BYTE* Buffer, int x0, int y0, int x1, int y1, int width, int height)
291 | {
292 | int egim = ((y1 - y0) / (x1 - x0));
293 | int konum = 0;
294 |
295 | if (x0 < x1)
296 | {
297 | for (int column = y0; column <= y1; column++)
298 | {
299 | for (int row = x0; row <= x1; row++)
300 | {
301 | if (row == (egim*(column - x0)) + y0)
302 | {
303 | konum = (row * width + column);
304 | Buffer[konum] = BYTE(255);
305 | }
306 | }
307 | }
308 |
309 | }
310 | if (x0 > x1) {
311 | for (int row = x1; row <= x0; row++) {
312 | for (int column = y1; column >= y0; column--)
313 | {
314 | if (column == (egim * (row - y0)) + x0) {
315 | konum = (row * width + column);
316 | Buffer[konum] = BYTE(255);
317 | }
318 |
319 | }
320 | }
321 | }
322 | if (x0 == x1) {
323 | for (int row = x0; row < x0 + 1; row++) {
324 | for (int column = y0; column <= y1; column++)
325 | {
326 | konum = row * width + column;
327 | Buffer[konum] = BYTE(255);
328 | }
329 | }
330 | }
331 |
332 | }//cizgiCiz
333 |
334 | void cemberCiz(BYTE* Buffer, int x, int y, int r, int width, int height)
335 | {
336 | int x0 = 0, y0 = 0, konum = 0;
337 | for (int i = 0; i < 360; i++)
338 | {
339 | x0 = (int)(x + cos(i) * r);
340 | y0 = (int)(y + sin(i) * r);
341 |
342 | konum = width * y0 + x0;
343 |
344 | if (x0 >= 0 && x0 < width && konum < width*height && konum >= 0)
345 | {
346 | Buffer[konum] = BYTE(255);
347 | }
348 |
349 | }
350 | }//cemberCiz
351 |
352 | int *histogram(BYTE* buffer, int width, int height)
353 | {
354 | int *histogram = new int[256];
355 |
356 | for (unsigned int i = 0; i < 256; i++)
357 | histogram[i] = 0;
358 |
359 | for (unsigned int pos = 0; pos < width*height; pos++)
360 | {
361 | int t = buffer[pos];
362 | histogram[t]++;
363 | }
364 | return histogram;
365 | }//Histogram
366 |
367 | BYTE* HistogramEqualization(BYTE* buffer, int width, int height)
368 | {
369 | int pixel = width * height;
370 | int level = 255;
371 | int *stretch = new int[256];
372 | int etiket = 1;
373 |
374 | BYTE *tBuffer = new BYTE[width * height];
375 |
376 | int *histogram0 = histogram(buffer, width, height);
377 |
378 | for (int i = 0; i < 256; i++)
379 | stretch[i] = 0;
380 |
381 | float sum = 0.0;
382 | for (int i = 0; i <= level; i++)
383 | {
384 | sum += histogram0[i];
385 | stretch[i] = (int)round((sum / pixel) *level);
386 | }
387 |
388 |
389 |
390 | for (int i = 0; i < width * height; i++)
391 | tBuffer[i] = BYTE(0);
392 |
393 | for (int k = 0; k < 256; k++)
394 | {
395 | if (histogram0[k] > 0)
396 | {
397 | for (int pos = 0; pos < width*height; pos++)
398 | {
399 | if (buffer[pos] == BYTE(k))
400 | {
401 | if (tBuffer[pos] == 0)
402 | {
403 | buffer[pos] = BYTE(stretch[k]);
404 | tBuffer[pos] = BYTE(etiket);
405 | }
406 | }
407 | }
408 | etiket++;
409 | }
410 | }
411 | delete[]tBuffer;
412 |
413 | return buffer;
414 | }
415 |
416 | BYTE *k_means(BYTE *Buffer, unsigned int Width, unsigned int Height)
417 | {
418 | float t1 = 0, t2 = 255;
419 | float t11 = -1, t22 = -1;
420 |
421 | double toplam1 = 0, toplam2 = 0;
422 | double bolme1 = 0, bolme2 = 0;
423 |
424 | int *histogram0 = new int[256];
425 |
426 |
427 | histogram0 = histogram(Buffer, Width, Height);
428 |
429 | while (true)
430 | {
431 | for (int i = 0; i < 256; i++)
432 | {
433 | if (fabs(i - t1) < fabs(i - t2))
434 | {
435 | toplam1 += (i*histogram0[i]);
436 | bolme1 += histogram0[i];
437 | }
438 | else
439 | {
440 | toplam2 += (i*histogram0[i]);
441 | bolme2 += histogram0[i];
442 | }
443 | }
444 |
445 | t11 = toplam1 / bolme1;
446 | t22 = toplam2 / bolme2;
447 |
448 | if (t1 == t11 && t2 == t22)
449 | break;
450 |
451 | t1 = t11;
452 | t2 = t22;
453 | }
454 |
455 | BYTE *k_means_buffer = new BYTE[Width*Height];
456 | k_means_buffer = Buffer;
457 | for (int i = 0; i < Width * Height; i++)
458 | {
459 | if (fabs(k_means_buffer[i] - t11) < fabs(k_means_buffer[i] - t22))
460 | k_means_buffer[i] = 0;
461 | else
462 | k_means_buffer[i] = 255;
463 | }
464 |
465 | return k_means_buffer;
466 | }
467 |
468 | BYTE *dilation(BYTE *Buffer, unsigned int Width, unsigned int Height)
469 | {
470 | BYTE *dilation = new BYTE[Width*Height];
471 | int A;
472 | bool result = 0;
473 |
474 | for (int i = 0; i < Height; i++)
475 | {
476 | for (int j = 0; j < Width; j++)
477 | {
478 | A = (i*Width + j);
479 | result = (Buffer[(A - Width)] || Buffer[(A - 1)] || Buffer[A] || Buffer[(A + 1)] || Buffer[(A + Width)]);
480 |
481 |
482 | if (result == true)
483 | dilation[A] = 255;
484 | else
485 | dilation[A] = 0;
486 |
487 | }
488 |
489 | }
490 |
491 | return dilation;
492 | }
493 |
494 | BYTE *erosion(BYTE *Buffer, unsigned int Width, unsigned int Height)
495 | {
496 | BYTE *erosion = new BYTE[Width*Height];
497 | int A;
498 | bool result = 0;
499 |
500 | for (int i = 0; i < Height; i++)
501 | {
502 | for (int j = 0; j < Width; j++)
503 | {
504 | A = (i*Width + j);
505 | result = (Buffer[(A - Width)] && Buffer[(A - 1)] && Buffer[A] && Buffer[(A + 1)] && Buffer[(A + Width)]);
506 |
507 | if (result == true)
508 | erosion[A] = 255;
509 | else
510 | erosion[A] = 0;
511 |
512 | }
513 |
514 | }
515 |
516 | return erosion;
517 | }
518 |
519 | BYTE* Sinirlar(BYTE*Buffer, int uzunluk, int yukseklik, int option) {
520 |
521 | if (option == 0)
522 | {
523 | BYTE* dilation_buf = dilation(Buffer, uzunluk, yukseklik);
524 | BYTE* buf = new BYTE[uzunluk*yukseklik];
525 | for (int i = 0; i < uzunluk*yukseklik; i++)
526 | {
527 | if (Buffer[i] != dilation_buf[i])
528 | {
529 | buf[i] = BYTE(255);
530 | }
531 | else
532 | {
533 | buf[i] = BYTE(0);
534 | }
535 | }
536 | return buf;
537 | }
538 | else if (option == 1)
539 | {
540 | BYTE* dilation_buf = dilation(Buffer, uzunluk, yukseklik);
541 | BYTE* buf = new BYTE[uzunluk*yukseklik];
542 | for (int i = 0; i < uzunluk*yukseklik; i++)
543 | {
544 | if (Buffer[i] != dilation_buf[i])
545 | {
546 | buf[i] = BYTE(0);
547 | }
548 | else
549 | {
550 | buf[i] = BYTE(255);
551 | }
552 | }
553 | return buf;
554 | }
555 | else if (option == 2)
556 | {
557 | BYTE* erosion_buf = erosion(Buffer, uzunluk, yukseklik);
558 | BYTE* buf = new BYTE[uzunluk*yukseklik];
559 | for (int i = 0; i < uzunluk*yukseklik; i++)
560 | {
561 | if (Buffer[i] != erosion_buf[i])
562 | {
563 | buf[i] = BYTE(255);
564 | }
565 | else
566 | {
567 | buf[i] = BYTE(0);
568 | }
569 | }
570 | return buf;
571 | }
572 | else if (option == 3)
573 | {
574 | BYTE* erosion_buf = erosion(Buffer, uzunluk, yukseklik);
575 | BYTE* buf = new BYTE[uzunluk*yukseklik];
576 | for (int i = 0; i < uzunluk*yukseklik; i++)
577 | {
578 | if (Buffer[i] != erosion_buf[i])
579 | {
580 | buf[i] = BYTE(0);
581 | }
582 | else
583 | {
584 | buf[i] = BYTE(255);
585 | }
586 | }
587 | return buf;
588 | }
589 |
590 |
591 | }
592 |
593 | BYTE* Tumleme(BYTE*Buffer, int uzunluk, int yukseklik, int option) {
594 | if(option == 0)
595 | {
596 | BYTE* buf = new BYTE[uzunluk*yukseklik];
597 | for (int i = 0; i < uzunluk*yukseklik; i++)
598 | {
599 | buf[i] = BYTE(option + int(Buffer[i]));
600 | }
601 | return buf;
602 | }
603 | else if (option == 255) {
604 | BYTE* buf = new BYTE[uzunluk*yukseklik];
605 | for (int i = 0; i < uzunluk*yukseklik; i++)
606 | {
607 | buf[i] = BYTE(option - int(Buffer[i]));
608 | }
609 | return buf;
610 | }
611 |
612 |
613 | }
614 |
615 | float oklid_Distance(float *arr1, float *arr2, int size)
616 | {
617 | float temp = 0;
618 | for (int i = 0; i < size; i++)
619 | {
620 | temp += pow((arr1[i] - arr2[i]), 2);
621 | }
622 | return sqrt(temp);
623 | }
624 |
625 |
626 |
627 | BYTE* ObjectDetect(BYTE* buffer, int width, int height, int %label)
628 | {
629 | int etiket = 2;
630 |
631 | int *object = new int[width*height];
632 | for (int i = 0; i < height*width; i++)
633 | {
634 | if ((int)buffer[i] == 0)// fotonun kendi degerlerini etiketliyoruz
635 | object[i] = 1;
636 | else
637 | object[i] = 0;
638 | }
639 |
640 | for (int i = 0; i < height; i++)
641 | {
642 | for (int j = 0; j < width; j++)
643 | {
644 | if (etiket == 99)
645 | etiket++;
646 | if ((int)buffer[i * width + j] == 0)
647 | {
648 | // (0,0)
649 | if (i == 0 && j == 0)
650 | object[i * width + j] = etiket++;
651 | // (0,j)
652 | else if (i == 0)
653 | {
654 | if (object[i * width + j - 1] != 0)
655 | object[i * width + j] = object[i * width + j - 1];
656 | else
657 | object[i * width + j] = etiket++;
658 | }
659 |
660 | // (i,0)
661 | else if (j == 0)
662 | {
663 | if (object[(i - 1) * width + j] != 0)
664 | object[i * width + j] = object[(i - 1) * width + j];
665 | else
666 | object[i * width + j] = etiket++;
667 | }
668 | // -----
669 | else
670 | {
671 | if (object[(i - 1) * width + j] == 0 && object[i* width + j - 1] == 0)
672 | object[i * width + j] = etiket++;
673 | else if (object[(i - 1) * width + j] == object[i* width + j - 1])
674 | object[i * width + j] = object[(i - 1) * width + j];
675 | else if (object[(i - 1) * width + j] != 0 && object[(i - 1) * width + j] != 'c' && object[i* width + j - 1] != 0 && object[i* width + j - 1] != 'c')
676 | object[i * width + j] = 'c';
677 | else if (object[(i - 1) * width + j] != 0 && object[i* width + j - 1] == 0)
678 | object[i * width + j] = object[(i - 1) * width + j];
679 | else if (object[i* width + j - 1] != 0 && object[(i - 1) * width + j] == 0)
680 | object[i * width + j] = object[i* width + j - 1];
681 | else if (object[i* width + j - 1] != 0 && object[(i - 1) * width + j] == 'c')
682 | object[i * width + j] = object[i* width + j - 1];
683 | else if (object[(i - 1)* width + j] != 0 && object[i * width + j - 1] == 'c')
684 | object[i * width + j] = object[(i - 1)* width + j];
685 | }
686 |
687 | }
688 | }
689 |
690 | }
691 | for (int i = 0; i < height; i++)
692 | {
693 | for (int j = 0; j < width; j++)
694 | {
695 | if (object[i * width + j] == 'c')
696 | {
697 |
698 | if (object[(i - 1) * width + j] != 0 && object[(i - 1) * width + j] < object[i * width + j - 1])
699 | {
700 | object[i * width + j] = object[(i - 1) * width + j];
701 | int a = object[(i - 1) * width + j];
702 | int b = object[i * width + j - 1];
703 |
704 | for (int i = 0; i < height*width; i++)
705 | {
706 | if (object[i] == b)
707 | object[i] = a;
708 | }
709 | }
710 | else if (object[i * width + j - 1] != 0 && object[i * width + j - 1] < object[(i - 1) * width + j])
711 | {
712 | object[i * width + j] = object[i * width + j - 1];
713 | int a = object[(i - 1) * width + j];
714 | int b = object[i * width + j - 1];
715 | for (int i = 0; i < height*width; i++)
716 | {
717 | if (object[i] == a)
718 | object[i] = b;
719 | }
720 | }
721 | else
722 | {
723 | if (object[i * width + j - 1] != 0)
724 | object[i * width + j] = object[i * width + j - 1];
725 | else
726 | object[i * width + j] = object[(i - 1) * width + j];
727 | }
728 | }
729 | }
730 | }
731 |
732 | int *hist = new int[etiket];
733 | for (int i = 0; i < etiket; i++)
734 | hist[i] = 0;
735 |
736 | for (int i = 0; i < width*height; i++)
737 | hist[object[i]]++;
738 |
739 | label = 0;
740 | for (int i = 2; i < etiket; i++)
741 | if (hist[i] != 0)
742 | label++;
743 |
744 | int cmin = 99999, cmax = -99999;
745 | int rmin = 99999, rmax = -99999;
746 | for (int k = 2; k < etiket; k++)
747 | {
748 | int cmin = 99999, cmax = -99999;
749 | int rmin = 99999, rmax = -99999;
750 | if (hist[k] != 0)
751 | {
752 | for (int i = 0; i < height; i++)
753 | {
754 | for (int j = 0; j < width; j++)
755 | {
756 | if (object[i*width + j] == k)
757 | {
758 | if (cmin > j)
759 | cmin = j;
760 | else if (cmax < j)
761 | cmax = j;
762 |
763 | if (rmin > i)
764 | rmin = i;
765 | else if (rmax < i)
766 | rmax = i;
767 | }
768 |
769 | }
770 | }
771 | for (int m = rmin; m <= rmax; m++)
772 | {
773 | for (int n = cmin; n <= cmax; n++)
774 | {
775 | if (m == rmin || m == rmax)
776 | buffer[m*width + n] = BYTE(150);
777 | else
778 | {
779 | if (n == cmin || n == cmax)
780 | buffer[m*width + n] = BYTE(150);
781 | }
782 | }
783 | }
784 | }
785 |
786 | }
787 | return buffer;
788 | }
789 |
790 |
791 |
792 |
793 |
794 | BYTE *canny_Andhough(BYTE *Buffer, unsigned int Width, unsigned int Height)
795 | {
796 | BYTE *Raw_Intensity = Buffer;
797 |
798 | int C, index = 0; //Center
799 | int result;
800 | int *horizontal_derivative = new int[(Width - 2)*(Height - 2)];
801 | for (int i = 1; i < Height - 1; i++)
802 | {
803 | for (int j = 1; j < Width - 1; j++)
804 | {
805 | C = (i*Width + j);
806 | // 1 2 1 - 0 0 0 - -1 -2 -1 maskesini gezidiriyoruz yatay maske gezdiriyoruz
807 |
808 | result = (1 * Raw_Intensity[(C - Width - 1)] + 2 * Raw_Intensity[(C - Width)] + 1 * Raw_Intensity[(C - Width + 1)] + 0 * Raw_Intensity[(C - 1)] + 0 * Raw_Intensity[C] + 0 * Raw_Intensity[(C + 1)] + (-1)*Raw_Intensity[(C + Width - 1)] + (-2)*Raw_Intensity[(C + Width)] + (-1)*Raw_Intensity[(C + Width + 1)]);
809 | horizontal_derivative[index] = abs(result);
810 | index++;
811 | }
812 | }
813 |
814 | index = 0;
815 | int *vertical_derivative = new int[(Width - 2)*(Height - 2)];
816 | for (int i = 1; i < Height - 1; i++)
817 | {
818 | for (int j = 1; j < Width - 1; j++)
819 | {
820 | C = (i*Width + j);
821 | // 1 0 -1 - 2 0 -2 - 1 0 -1 maskesini gezidiriyoruz //kenar yönü dikeyde
822 | result = (1 * Raw_Intensity[(C - Width - 1)] + 0 * Raw_Intensity[(C - Width)] + (-1) *Raw_Intensity[(C - Width + 1)] + 2 * Raw_Intensity[(C - 1)] + 0 * Raw_Intensity[C] + (-2) * Raw_Intensity[(C + 1)] + 1 * Raw_Intensity[(C + Width - 1)] + 0 * Raw_Intensity[(C + Width)] + (-1)*Raw_Intensity[(C + Width + 1)]);
823 | vertical_derivative[index] = abs(result);
824 | index++;
825 | }
826 | }
827 |
828 | BYTE *deneme6 = new BYTE[(Width - 2) * (Height - 2)];
829 | for (int i = 0; i < Height - 2; i++)
830 | {
831 | for (int j = 0; j < Width - 2; j++)
832 | {
833 | C = i * (Width - 2) + j;
834 | deneme6[C] = round(horizontal_derivative[C]/54);
835 | }
836 | }
837 | long new_size6;
838 | BYTE *temp_buffer6 = ConvertIntensityToBMP(deneme6, Width - 2, Height - 2, &new_size6);
839 | LPCTSTR output6;
840 | output6 = L"C://Users//Orkhan ALIYEV//Desktop//Projeler//fotograflar//FindLine//ytürev.bmp"; //BMP goruntumuzu kaydederiz
841 | SaveBMP(temp_buffer6, Width - 2, Height - 2, new_size6, output6);
842 |
843 |
844 | BYTE *deneme5 = new BYTE[(Width - 2) * (Height - 2)];
845 | for (int i = 0; i < Height - 2; i++)
846 | {
847 | for (int j = 0; j < Width - 2; j++)
848 | {
849 | C = i * (Width - 2) + j;
850 | deneme5[C] = round(vertical_derivative[C] / 4);
851 | }
852 | }
853 | long new_size5;
854 | BYTE *temp_buffer5 = ConvertIntensityToBMP(deneme5, Width - 2, Height - 2, &new_size5);
855 | LPCTSTR output5;
856 | output5 = L"C://Users//Orkhan ALIYEV//Desktop//Projeler//fotograflar//FindLine//dtürev.bmp"; //BMP goruntumuzu kaydederiz
857 | SaveBMP(temp_buffer5, Width - 2, Height - 2, new_size5, output5);
858 |
859 |
860 |
861 |
862 |
863 | int *edge_image = new int[(Width - 2)*(Height * 2)];
864 | int *edge_image1 = new int[(Width - 2)*(Height * 2)];
865 | int sonuc2;
866 | for (int i = 0; i < Height - 2; i++)
867 | {
868 | for (int j = 0; j < Width - 2; j++)
869 | {
870 | C = (i*(Width - 2) + j);
871 | // 2 maske sonucunu topluyoruz not: 255den daha buyuk degeler olabýlýr max 1020 olabýlýr
872 | result = abs(vertical_derivative[C]) + abs(horizontal_derivative[C]) %255;
873 | sonuc2 = (vertical_derivative[C] + horizontal_derivative[C]) ;
874 | edge_image[C] = abs(result);
875 | edge_image1[C] = abs(sonuc2);
876 | }
877 | }
878 |
879 | BYTE *deneme4 = new BYTE[(Width - 2) * (Height - 2)];
880 | for (int i = 0; i < Height - 2; i++)
881 | {
882 | for (int j = 0; j < Width - 2; j++)
883 | {
884 | C = i * (Width - 2) + j;
885 | deneme4[C] = round(edge_image1[C] / 4);
886 | }
887 | }
888 | long new_size4;
889 | BYTE *temp_buffer4 = ConvertIntensityToBMP(deneme4, Width - 2, Height - 2, &new_size4);
890 | LPCTSTR output4;
891 | output4 = L"C://Users//Orkhan ALIYEV//Desktop//Projeler//fotograflar//FindLine//edge.bmp"; //BMP goruntumuzu kaydederiz
892 | SaveBMP(temp_buffer4, Width - 2, Height - 2, new_size4, output4);
893 |
894 |
895 | float Q; //Angle
896 |
897 | for (int i = 0; i < Height - 2; i++)
898 | {
899 | for (int j = 0; j < Width - 2; j++)
900 | {
901 | C = (i*(Width - 2) + j);
902 |
903 | Q = atan2(vertical_derivative[C], horizontal_derivative[C]) * 180 / PI; //q=tan^-1((dI/dy)/(dI/dx)) gradient drection
904 |
905 | // buldugumuz aciya gore buyukluk kýyaslamasý yapacagýz ve eger buyukse aynen kalacak degilse 0 atanacak boylece non-maximum suppresion matrisimizi elde edecegiz.
906 | if ((0 <= Q && Q < 22.5) || (337.5 <= Q && Q <= 360) || (157.5 <= Q && Q < 202.5) || (0 > Q && Q > -22.5) || (-157.5 >= Q && Q > -202.5) || (-337.5 >= Q && Q >= -360)) // acý bu araliktaysa yatayda
907 | {
908 | if (j == 0)
909 | {
910 | if (edge_image[C] > edge_image[C + 1])
911 | edge_image[C] = edge_image[C];
912 | else
913 | edge_image[C] = 0;
914 | }
915 | else if (j == (Width - 2) - 1)
916 | {
917 | if (edge_image[C] > edge_image[C - 1])
918 | edge_image[C] = edge_image[C];
919 | else
920 | edge_image[C] = 0;
921 | }
922 | else
923 | {
924 | if (edge_image[C] > edge_image[C - 1] && edge_image[C] > edge_image[C + 1])
925 | edge_image[C] = edge_image[C];
926 | else
927 | edge_image[C] = 0;
928 | }
929 |
930 | }
931 |
932 | else if ((22.5 <= Q && Q < 67.5) || (202.5 <= Q && Q < 247.5) || (-112.5 >= Q && Q > -157.5) || (-292.5 >= Q && Q > -337.5)) // acý bu araliktaysa caprazda(45 derece)
933 | {
934 |
935 | if ((j == 0 && i == 0) || (i == (Height - 2 - 1) && j == (Width - 2) - 1))
936 | {
937 | edge_image[C] = edge_image[C];
938 | }
939 |
940 | else if ((i == 0) || (j == (Width - 2) - 1))
941 | {
942 | if (edge_image[C] > edge_image[C + (Width - 2) - 1])
943 | edge_image[C] = edge_image[C];
944 | else
945 | edge_image[C] = 0;
946 | }
947 |
948 | else if ((j == 0) || (i == (Height - 2) - 1))
949 | {
950 | if (edge_image[C] > edge_image[(C - (Width - 2) + 1)])
951 | edge_image[C] = edge_image[C];
952 | else
953 | edge_image[C] = 0;
954 | }
955 | else
956 | {
957 | if (edge_image[C] > edge_image[(C - (Width - 2) + 1)] && edge_image[C] > edge_image[C + (Width - 2) - 1])
958 | edge_image[C] = edge_image[C];
959 | else
960 | edge_image[C] = 0;
961 | }
962 |
963 | }
964 |
965 | else if ((67.5 <= Q && Q < 112.5) || (247.5 <= Q && Q < 292.5) || (-67.5 >= Q && Q > -112.5) || (-247.5 >= Q && Q > -292.5)) // acý bu aralikta ise dikeyde (90 derece)
966 | {
967 | if (i == 0)
968 | {
969 | if (edge_image[C] > edge_image[C + (Width - 2)])
970 | edge_image[C] = edge_image[C];
971 | else
972 | edge_image[C] = 0;
973 | }
974 | else if (i == (Height - 2 - 1))
975 | {
976 | if (edge_image[C] > edge_image[(C - (Width - 2))])
977 | edge_image[C] = edge_image[C];
978 | else
979 | edge_image[C] = 0;
980 | }
981 | else
982 | {
983 | if (edge_image[C] > edge_image[C - (Width - 2)] && edge_image[C] > edge_image[C + (Width - 2)])
984 | edge_image[C] = edge_image[C];
985 | else
986 | edge_image[C] = 0;
987 | }
988 | }
989 |
990 | else if ((112.5 <= Q && Q < 157.5) || (292.5 <= Q && Q < 337.5) || (-22.5 >= Q && Q > -67.5) || (-202.5 >= Q && Q > -247.5)) // acý bu aralikta ise caprazda (135 derece)
991 | {
992 | if ((j == 0 && i == (Height - 2) - 1) || (i == 0 && j == (Width - 2) - 1))
993 | {
994 | edge_image[C] = edge_image[C];
995 | }
996 |
997 | else if (j == 0 || i == 0)
998 | {
999 | if (edge_image[C] > edge_image[C + (Width - 2) + 1])
1000 | edge_image[C] = edge_image[C];
1001 | else
1002 | edge_image[C] = 0;
1003 | }
1004 |
1005 | else if (i == (Height - 2 - 1) || j == (Width - 2 - 1))
1006 | {
1007 | if (edge_image[C] > edge_image[(C - (Width - 2) - 1)])
1008 | edge_image[C] = edge_image[C];
1009 | else
1010 | edge_image[C] = 0;
1011 | }
1012 |
1013 | else
1014 | {
1015 | if (edge_image[C] > edge_image[(C - (Width - 2) - 1)] && edge_image[C] > edge_image[C + (Width - 2) + 1])
1016 | edge_image[C] = edge_image[C];
1017 | else
1018 | edge_image[C] = 0;
1019 | }
1020 |
1021 | }
1022 |
1023 | }
1024 | }
1025 |
1026 | BYTE *deneme3 = new BYTE[(Width - 2) * (Height - 2)];
1027 | for (int i = 0; i < Height - 2; i++)
1028 | {
1029 | for (int j = 0; j < Width - 2; j++)
1030 | {
1031 | C = i * (Width - 2) + j;
1032 | deneme3[C] = round(edge_image[C] / 4);
1033 |
1034 | }
1035 | }
1036 | long new_size3;
1037 | BYTE *temp_buffer3 = ConvertIntensityToBMP(deneme3, Width - 2, Height - 2, &new_size3);
1038 | LPCTSTR output3;
1039 | output3 = L"C://Users//Orkhan ALIYEV//Desktop//Projeler//fotograflar//FindLine//non-maximum-suppresion.bmp"; //BMP goruntumuzu kaydederiz
1040 | SaveBMP(temp_buffer3, Width - 2, Height - 2, new_size3, output3);
1041 |
1042 |
1043 | // NONMAXÝMUM SUPPRESÝON MATRÝSÝMÝZÝDE BULDUKDAON SONRA HERHANGÝ BÝR TLOW VE THÝGH DEGERÝ SECÝP BINARY GORUNTU ELDE EDICEZ
1044 | // BAZI SAYILAR BINARY OLMAZSA BU SEFER KENAR YONUNDE KOMSULUKLARA BAKICAZ
1045 |
1046 | //Tlow degerini 20 Thigh degerini 2000 olarak belirledik ve bu sinira gore binary goruntumuzu olusturduk
1047 | int *nonmaximum_suppression = new int[(Width - 2)*(Height - 2)];
1048 | nonmaximum_suppression = edge_image;
1049 |
1050 | //goruntudeki en buyuk degeri bulduk
1051 | int max_pixel = 0;
1052 | for (int i = 0; i < Height - 2; i++)
1053 | for (int j = 0; j < Width - 2; j++)
1054 | {
1055 | C = i * (Width - 2) + j;
1056 | if (nonmaximum_suppression[C] > max_pixel)
1057 | max_pixel = nonmaximum_suppression[C];
1058 |
1059 | }
1060 |
1061 | //Tlow ve Thýgh degerlerýmý belirledik
1062 | for (int i = 0; i < Height - 2; i++)
1063 | {
1064 | for (int j = 0; j < Width - 2; j++)
1065 | {
1066 | C = i * (Width - 2) + j;
1067 | if (nonmaximum_suppression[C] <= 40)
1068 | {
1069 | nonmaximum_suppression[C] = 0;
1070 | }
1071 | else if (nonmaximum_suppression[C] >= max_pixel - 5)
1072 | {
1073 | nonmaximum_suppression[C] = 1;
1074 | }
1075 |
1076 | }
1077 | }
1078 |
1079 |
1080 | BYTE *deneme1 = new BYTE[(Width - 2) * (Height - 2)];
1081 | for (int i = 0; i < Height - 2; i++)
1082 | {
1083 | for (int j = 0; j < Width - 2; j++)
1084 | {
1085 | C = i * (Width - 2) + j;
1086 | deneme1[C] = round(nonmaximum_suppression[C] / 4);
1087 |
1088 | }
1089 | }
1090 | long new_size1;
1091 | BYTE *temp_buffer1 = ConvertIntensityToBMP(deneme1, Width - 2, Height - 2, &new_size1);
1092 | LPCTSTR output1;
1093 | output1 = L"C://Users//Orkhan ALIYEV//Desktop//Projeler//fotograflar//FindLine//hysteric_threshold.bmp"; //BMP goruntumuzu kaydederiz
1094 | SaveBMP(temp_buffer1, Width - 2, Height - 2, new_size1, output1);
1095 |
1096 | //Tlow ve Thigh arasýndaki degeler icin kenar dogrultusu yonunde komsuluklara bakarak asýl binary goruntumuzu elde edicez
1097 |
1098 |
1099 | for (int i = 0; i < Height - 2; i++)
1100 | {
1101 | for (int j = 0; j < Width - 2; j++)
1102 | {
1103 | C = i * (Width - 2) + j;
1104 | if (nonmaximum_suppression[C] != 0 && nonmaximum_suppression[C] != 1)
1105 | {
1106 |
1107 | Q = atan2(vertical_derivative[C], horizontal_derivative[C]) * 180 / PI; //q=tan^-1((dI/dy)/(dI/dx)) gradient drection
1108 |
1109 |
1110 | //buldugumuz acýnýn bu sefer tersine gore yani kenar dogrultusu boyunca komsularýna bakicaz eger 1 ise 1, 0 ise 0 vericez ikisi varsa 0'ý tercih edecegiz.
1111 | if ((0 <= Q && Q < 22.5) || (337.5 <= Q && Q <= 360) || (157.5 <= Q && Q < 202.5) || (0 > Q && Q > -22.5) || (-157.5 >= Q && Q > -202.5) || (-337.5 >= Q && Q >= -360)) // acý bu araliktaysa dikeyde kenar dogrultusunda komsuluklarýna bakýlýr
1112 | {
1113 | if (i == 0)
1114 | {
1115 | if (nonmaximum_suppression[C + (Width - 2)] == 1)
1116 | nonmaximum_suppression[C] = 1;
1117 | else if (nonmaximum_suppression[C + (Width - 2)] == 0)
1118 | nonmaximum_suppression[C] = 0;
1119 |
1120 |
1121 | }
1122 | else if (i == (Height - 2) - 1)
1123 | {
1124 | if (nonmaximum_suppression[(C - (Width - 2))] == 1)
1125 | nonmaximum_suppression[C] = 1;
1126 | else if (nonmaximum_suppression[(C - (Width - 2))] == 0)
1127 | nonmaximum_suppression[C] = 0;
1128 | }
1129 | else
1130 | {
1131 | if ((nonmaximum_suppression[(C - (Width - 2))] == 1 && nonmaximum_suppression[C + (Width - 2)] == 1))
1132 | nonmaximum_suppression[C] = 1;
1133 |
1134 | else if ((nonmaximum_suppression[(C - (Width - 2))] == 0 && nonmaximum_suppression[C + (Width - 2)] == 0) || (nonmaximum_suppression[(C - (Width - 2))] == 0 && nonmaximum_suppression[C + (Width - 2)] == 1) || (nonmaximum_suppression[(C - (Width - 2))] == 1 && nonmaximum_suppression[C + (Width - 2)] == 0))
1135 | nonmaximum_suppression[C] = 0;
1136 | }
1137 |
1138 | }
1139 |
1140 | else if ((22.5 <= Q && Q < 67.5) || (202.5 <= Q && Q < 247.5) || (-112.5 >= Q && Q > -157.5) || (-292.5 >= Q && Q > -337.5)) // acý bu araliktaysa caprazda(135 derece) kenar dogrultusunda komsuluklara bakýlýr
1141 | {
1142 |
1143 | if ((j == 0 && i == (Height - 2) - 1) || (i == 0 && j == (Width - 2) - 1))
1144 | {
1145 | nonmaximum_suppression[C] = 0;
1146 | }
1147 |
1148 | else if (j == 0 || i == 0)
1149 | {
1150 | if (nonmaximum_suppression[C + (Width - 2) + 1] == 1)
1151 | nonmaximum_suppression[C] = 1;
1152 | else if (nonmaximum_suppression[C + (Width - 2) + 1] == 0)
1153 | nonmaximum_suppression[C] = 0;
1154 | }
1155 |
1156 | else if (i == (Height - 2 - 1) || j == (Width - 2 - 1))
1157 | {
1158 | if (nonmaximum_suppression[C - (Width - 2) - 1] == 1)
1159 | nonmaximum_suppression[C] = 1;
1160 | else if (nonmaximum_suppression[C - (Width - 2) - 1] == 0)
1161 | nonmaximum_suppression[C] = 0;
1162 | }
1163 |
1164 | else
1165 | {
1166 | if ((nonmaximum_suppression[(C - (Width - 2) - 1)] == 1 && nonmaximum_suppression[C + (Width - 2) + 1] == 1))
1167 | nonmaximum_suppression[C] = 1;
1168 |
1169 | else if ((nonmaximum_suppression[(C - (Width - 2) - 1)] == 0 && nonmaximum_suppression[C + (Width - 2) + 1] == 0) || (nonmaximum_suppression[(C - (Width - 2) - 1)] == 0 && nonmaximum_suppression[C + (Width - 2) + 1] == 1) || (nonmaximum_suppression[(C - (Width - 2) - 1)] == 1 && nonmaximum_suppression[C + (Width - 2) + 1] == 0))
1170 | nonmaximum_suppression[C] = 0;
1171 | }
1172 |
1173 | }
1174 |
1175 | else if ((67.5 <= Q && Q < 112.5) || (247.5 <= Q && Q < 292.5) || (-67.5 >= Q && Q > -112.5) || (-247.5 >= Q && Q > -292.5)) // acý bu aralikta ise yatayda kenar dogrultusunda komsulklara bakýlýr (0 derece)
1176 | {
1177 |
1178 | if (j == 0)
1179 | {
1180 | if (nonmaximum_suppression[C + 1] == 1)
1181 | nonmaximum_suppression[C] = 1;
1182 | else if (nonmaximum_suppression[C + 1] == 0)
1183 | nonmaximum_suppression[C] = 0;
1184 | }
1185 | else if (j == (Width - 2) - 1)
1186 | {
1187 | if (nonmaximum_suppression[C - 1] == 1)
1188 | nonmaximum_suppression[C] = nonmaximum_suppression[C - 1];
1189 | else if (nonmaximum_suppression[C - 1] == 0)
1190 | nonmaximum_suppression[C] = 0;
1191 | }
1192 | else
1193 | {
1194 | if ((nonmaximum_suppression[C - 1] == 1 && nonmaximum_suppression[C + 1] == 1))
1195 | nonmaximum_suppression[C] = 1;
1196 |
1197 | else if ((nonmaximum_suppression[C - 1] == 0 && nonmaximum_suppression[C + 1] == 0) || (nonmaximum_suppression[C - 1] == 0 && nonmaximum_suppression[C + 1] == 1) || (nonmaximum_suppression[C - 1] == 1 && nonmaximum_suppression[C + 1] == 0))
1198 | nonmaximum_suppression[C] = 0;
1199 | }
1200 |
1201 | }
1202 |
1203 | else if ((112.5 <= Q && Q < 157.5) || (292.5 <= Q && Q < 337.5) || (-22.5 >= Q && Q > -67.5) || (-202.5 >= Q && Q > -247.5)) // acý bu aralikta ise caprazda (45 derece) kenar dogrultusunda komsuluklara bakýlýr
1204 | {
1205 |
1206 | if ((j == 0 && i == 0) || (i == (Height - 2 - 1) && j == (Width - 2 - 1)))
1207 | {
1208 | nonmaximum_suppression[C] = 0;
1209 | }
1210 |
1211 | else if ((i == 0) || (j == (Width - 2) - 1))
1212 | {
1213 | if (nonmaximum_suppression[C + (Width - 2) - 1] == 1)
1214 | nonmaximum_suppression[C] = 1;
1215 | else if (nonmaximum_suppression[C + (Width - 2) - 1] == 0)
1216 | nonmaximum_suppression[C] == 0;
1217 |
1218 | }
1219 |
1220 | else if ((j == 0) || (i == (Height - 2) - 1))
1221 | {
1222 | if (nonmaximum_suppression[C + (Width - 2) + 1] == 1)
1223 | nonmaximum_suppression[C] = 1;
1224 | else if (nonmaximum_suppression[C + (Width - 2) + 1] == 0)
1225 | nonmaximum_suppression[C] == 0;
1226 | }
1227 | else
1228 | {
1229 | if ((nonmaximum_suppression[(C - (Width - 2) + 1)] == 1 && nonmaximum_suppression[C + (Width - 2) - 1] == 1))
1230 | nonmaximum_suppression[C] = 1;
1231 |
1232 | else if ((nonmaximum_suppression[(C - (Width - 2) + 1)] == 0 && nonmaximum_suppression[C + (Width - 2) - 1] == 0) || (nonmaximum_suppression[(C - (Width - 2) + 1)] == 0 && nonmaximum_suppression[C + (Width - 2) - 1] == 1) || (nonmaximum_suppression[(C - (Width - 2) + 1)] == 1 && nonmaximum_suppression[C + (Width - 2) - 1] == 0))
1233 | nonmaximum_suppression[C] = 0;
1234 | }
1235 | }
1236 | }
1237 |
1238 | /*else
1239 | binary_image[M] = nonmaximum_suppression[M];*/
1240 | }
1241 | }
1242 |
1243 |
1244 | int *binary_edge_image = new int[(Width - 2)*(Height - 2)];
1245 | for (int i = 0; i < Height - 2; i++)
1246 | {
1247 | for (int j = 0; j < Width - 2; j++)
1248 | {
1249 | C = i * (Width - 2) + j;
1250 | if (nonmaximum_suppression[C] == 0)
1251 | {
1252 | binary_edge_image[C] = 0;
1253 | }
1254 | /*else if (nonmaximum_suppression[M] == 1)
1255 | {
1256 | binary_edge_image[M] = 1;
1257 | }*/
1258 | else
1259 | {
1260 | binary_edge_image[C] = 1;
1261 | }
1262 | }
1263 | }
1264 |
1265 | BYTE *deneme = new BYTE[(Width - 2) * (Height - 2)];
1266 | for (int i = 0; i < Height - 2; i++)
1267 | {
1268 | for (int j = 0; j < Width - 2; j++)
1269 | {
1270 | C = i * (Width - 2) + j;
1271 | if (binary_edge_image[C] == 0)
1272 | {
1273 | deneme[C] = 0;
1274 | }
1275 | else
1276 | {
1277 | deneme[C] = 255;
1278 | }
1279 |
1280 | }
1281 | }
1282 | long new_size;
1283 | BYTE *temp_buffer = ConvertIntensityToBMP(deneme, Width - 2, Height - 2, &new_size);
1284 | LPCTSTR output;
1285 | output = L"C://Users//Orkhan ALIYEV//Desktop//Projeler//fotograflar//FindLine//binary.bmp"; //BMP goruntumuzu kaydederiz
1286 | SaveBMP(temp_buffer, Width - 2, Height - 2, new_size, output);
1287 |
1288 | int d_limit = (Height * 4);
1289 | int *hough_transform = new int[d_limit * 360];
1290 |
1291 | for (int i = 0; i < d_limit; i++)
1292 | for (int j = 0; j < 360; j++)
1293 | {
1294 | C = i * 360 + j;
1295 | hough_transform[C] = 0;
1296 | }
1297 |
1298 | int d;
1299 | int M2;
1300 | int r, c;
1301 |
1302 | for (int i = 0; i < Height - 2; i++)
1303 | {
1304 | for (int j = 0; j < Width - 2; j++)
1305 | {
1306 | C = i * (Width - 2) + j;
1307 | if (binary_edge_image[C] == 1)
1308 | {
1309 | Q = round(atan2(vertical_derivative[C], horizontal_derivative[C]) * 180 / PI); //kenar yonunu bulduk
1310 |
1311 | //negatif yonle gelen acýlarda aslýnda ayni yonu verdigi icin pozitife tamamladik
1312 | if (Q < 0)
1313 | Q = 360 + Q;
1314 |
1315 | if (Q == 270)
1316 | Q = 90;
1317 | if (Q == 180 || Q == 360)
1318 | Q = 0;
1319 |
1320 | r = i + 1;
1321 | c = j + 1;
1322 | d = abs(r * round(sin(Q)) + c * round(cos(Q)));
1323 |
1324 | M2 = d * 360 + Q;
1325 | hough_transform[M2] = hough_transform[M2] + 1;
1326 | }
1327 |
1328 |
1329 | }
1330 | }
1331 |
1332 | BYTE *deneme7 = new BYTE[4 * Height * 360];
1333 | for (int i = 0; i < Height * 4; i++)
1334 | {
1335 | for (int j = 0; j < 360; j++)
1336 | {
1337 | C = i * 360 + j;
1338 |
1339 | if (hough_transform[C] > 10)
1340 | deneme7[C] = 255;
1341 | else
1342 | {
1343 | deneme7[C] = 0;
1344 | }
1345 |
1346 | }
1347 | }
1348 | long new_size7;
1349 | BYTE *temp_buffer7 = ConvertIntensityToBMP(deneme7, 360, Height * 4, &new_size7);
1350 | LPCTSTR output7;
1351 | output7 = L"C://Users//Orkhan ALIYEV//Desktop//Projeler//fotograflar//FindLine//hough_transform.bmp"; //BMP goruntumuzu kaydederiz
1352 | SaveBMP(temp_buffer7, 360, Height * 4, new_size7, output7);
1353 |
1354 |
1355 | //kenar ve yonlerýnýn tutuldugu diziler
1356 | int kenar_indisleri[500];
1357 | int acý_indisleri[500];
1358 | int k = 0;
1359 | for (int r = 0; r < d_limit; r++)
1360 | {
1361 | for (int c = 0; c < 360; c++)
1362 | {
1363 | C = r * 360 + c;
1364 | if (hough_transform[C] > 20)
1365 | {
1366 | kenar_indisleri[k] = r;
1367 | acý_indisleri[k] = c;
1368 | k++;
1369 | }
1370 | }
1371 | }
1372 | kenar_indisleri[k] = -1;
1373 |
1374 | for (int i = 0; kenar_indisleri[i] != -1; i++)
1375 | for (int j = 0; kenar_indisleri[j] != -1;j++)
1376 | {
1377 | if (kenar_indisleri[j] < kenar_indisleri[j + 1])
1378 | {
1379 | int gecici = kenar_indisleri[j + 1];
1380 | kenar_indisleri[j + 1] = kenar_indisleri[j];
1381 | kenar_indisleri[j] =gecici;
1382 | int gecici2 = acý_indisleri[j + 1];
1383 | acý_indisleri[j + 1] = acý_indisleri[j];
1384 | acý_indisleri[j] = gecici2;
1385 | }
1386 |
1387 | }
1388 |
1389 |
1390 |
1391 | int padding = 0;
1392 | int scanlinebytes = Width * 3;
1393 | while ((scanlinebytes + padding) % 4 != 0) // DWORD = 4 bytes
1394 | padding++;
1395 | // get the padded scanline width
1396 | int psw = scanlinebytes + padding;
1397 | int new_height;
1398 | long newpos;
1399 | int red = 0, green = 0, blue = 255;
1400 | int red1 = 255, green1 = 0, blue1 = 0;
1401 |
1402 | //dongunun sinirlarý max kenar sayýsýný asmamalý
1403 | for (int i = 0; kenar_indisleri[i] != -1; i++)
1404 | {
1405 | if (acý_indisleri[i] == 0)
1406 | {
1407 | for (int j = 0; j < Height; j++)
1408 | {
1409 | newpos = j * psw + kenar_indisleri[i] * 3;
1410 | Buffer[newpos] = red;
1411 | Buffer[newpos + 1] = green;
1412 | Buffer[newpos + 2] = blue;
1413 | }
1414 |
1415 | }
1416 | else if (acý_indisleri[i] == 90)
1417 | {
1418 | new_height = (Height - kenar_indisleri[i] - 1);
1419 |
1420 | for (int column = 0; column < Width; column++)
1421 | {
1422 | newpos = new_height * psw + column * 3;
1423 | Buffer[newpos] = red1;
1424 | Buffer[newpos + 1] = green1;
1425 | Buffer[newpos + 2] = blue1;
1426 | }
1427 | }
1428 | }
1429 |
1430 |
1431 | return Buffer;
1432 | }
1433 |
1434 | BYTE* MoveImage(BYTE* buffer, int width, int height)
1435 | {
1436 | BYTE* CikisResmi = new BYTE[width*height];
1437 | int x2 = 0, y2 = 0;
1438 | //Taşıma mesafelerini atıyor.
1439 | int Tx = 100;
1440 | int Ty = 50;
1441 |
1442 | //Tx ve Ty araligini beyazlat!
1443 | for (int x1 = 0; x1 < width; x1++)
1444 | {
1445 | for (int y1 = 0; y1 < height; y1++)
1446 | {
1447 | x2 = x1 + Tx;
1448 | y2 = y1 + Ty;
1449 |
1450 | if (x2 > 0 && x2 < width && y2 > 0 && y2 < height)
1451 | {
1452 | CikisResmi[y2*width + x2] = buffer[y1*width+x1];
1453 | }
1454 | }
1455 | }
1456 | return CikisResmi;
1457 | }
1458 |
1459 | BYTE* RotateImage(BYTE* buffer, int width, int height, int angle)
1460 | {
1461 | BYTE* CikisResmi = new BYTE[width*height];
1462 | int x2 = 0, y2 = 0;
1463 |
1464 | double RadyanAci = angle * 2 * PI / 360;
1465 | int x0 = width / 2;
1466 | int y0 = height / 2;
1467 |
1468 | for (int x1 = 0; x1 < (width); x1++)
1469 | {
1470 | for (int y1 = 0; y1 < (height); y1++)
1471 | {
1472 | //Döndürme Formülleri
1473 | x2 =cos(RadyanAci) * (x1 - x0) - sin(RadyanAci) * (y1 - y0) + x0;
1474 | y2 = sin(RadyanAci) * (x1 - x0) + cos(RadyanAci) * (y1 - y0) + y0;
1475 | if (x2 > 0 && x2 < width && y2>0 && y2 < height)
1476 | CikisResmi[y2*width + x2] = buffer[y1*width + x1];
1477 |
1478 | }
1479 | }
1480 | return CikisResmi;
1481 |
1482 | }
1483 |
1484 | BYTE* RotateImageAlias(BYTE* buffer, int width, int height, int angle)
1485 | {
1486 | BYTE* CikisResmi = new BYTE[width*height];
1487 | int x2 = 0, y2 = 0;
1488 |
1489 | double RadyanAci = angle * 2 * PI / 360;
1490 | int x0 = width / 2;
1491 | int y0 = height / 2;
1492 |
1493 | for (int x1 = 0; x1 < (width); x1++)
1494 | {
1495 | for (int y1 = 0; y1 < (height); y1++)
1496 | {
1497 | x2 = (x1 - x0) -tan(RadyanAci / 2) * (y1 - y0) + x0;
1498 | y2 = (y1 - y0) + y0;
1499 |
1500 | x2 = (x2 - x0) + x0;
1501 | y2 = sin(RadyanAci) * (x2 - x0) + (y2 - y0) + y0;
1502 |
1503 | x2 = (x2 - x0) - tan(RadyanAci / 2) * (y2 - y0) + x0;
1504 | y2 = (y2 - y0) + y0;
1505 |
1506 | if (x2 > 0 && x2 < width && y2>0 && y2 < height)
1507 | CikisResmi[y2*width + x2] = buffer[y1*width + x1];
1508 |
1509 | }
1510 | }
1511 | return CikisResmi;
1512 |
1513 | }
1514 |
1515 | BYTE* MirrorImage(BYTE* buffer, int width, int height, int angle)
1516 | {
1517 | BYTE* CikisResmi = new BYTE[width*height];
1518 | int x2 = 0, y2 = 0;
1519 |
1520 | double RadyanAci = angle * 2 * PI / 360;
1521 | int x0 = width / 2;
1522 | int y0 = height / 2;
1523 |
1524 | for (int x1 = 0; x1 < (width); x1++)
1525 | {
1526 | for (int y1 = 0; y1 < (height); y1++)
1527 | {
1528 | //Döndürme Formülleri
1529 | double Delta = (x1 - x0) * sin(RadyanAci) - (y1 - y0) * cos(RadyanAci);
1530 |
1531 | x2 = (x1 + 2 * Delta * (-sin(RadyanAci)));
1532 | y2 = (y1 + 2 * Delta * (cos(RadyanAci)));
1533 |
1534 |
1535 | if (x2 > 0 && x2 < width && y2>0 && y2 < height)
1536 | CikisResmi[y2*width + x2] = buffer[y1*width + x1];
1537 |
1538 | }
1539 | }
1540 | return CikisResmi;
1541 | }
1542 |
1543 | BYTE* Shearing(BYTE* buffer, int width, int height, double coefficients, int direction)
1544 | {
1545 | BYTE* CikisResmi = new BYTE[width*height];
1546 | int x2 = 0, y2 = 0;
1547 | coefficients = 0.2;
1548 |
1549 |
1550 |
1551 | for (int x1 = 0; x1 < (width); x1++)
1552 | {
1553 | for (int y1 = 0; y1 < (height); y1++)
1554 | {
1555 | if (direction == 0)//+x yonunde
1556 | {
1557 | x2 = x1 + coefficients * y1;
1558 | y2 = y1;
1559 | }else if (direction == 1)//-x yonunde
1560 | {
1561 | x2 = x1 - coefficients * y1;
1562 | y2 = y1;
1563 | }else if (direction == 2) //+y yonunde
1564 | {
1565 | x2 = x1;
1566 | y2 = coefficients *x1 +y1;
1567 | }else if (direction == 3) //-y yonunde
1568 | {
1569 | x2 = x1;
1570 | y2 = -coefficients * x1 + y1;
1571 | }
1572 |
1573 |
1574 |
1575 | if (x2 > 0 && x2 < width && y2 > 0 && y2 < height)
1576 | {
1577 | CikisResmi[y2*width + x2] = buffer[y1*width + x1];
1578 | }
1579 | }
1580 | }
1581 | return CikisResmi;
1582 | }
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/imge_bmp.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | BYTE* LoadBMP(int% width, int% height, long% size, LPCTSTR bmpfile);
4 | bool SaveBMP(BYTE* Buffer, int width, int height, long paddedsize, LPCTSTR bmpfile);
5 | BYTE* ConvertBMPToIntensity(BYTE* Buffer, int width, int height);
6 | BYTE* ConvertIntensityToBMP(BYTE* Buffer, int width, int height, long* newsize);
7 | BYTE* Mask(BYTE* Buffer, int uzunluk, int yukseklik, float mask[], int maskElemanSayisi, long% yeniUzunluk, long% yeniYukseklik);
8 | BYTE* zoom(BYTE* Buffer, unsigned int zoom_width1, unsigned int zoom_width2, unsigned int zoom_height1, unsigned int zoom_height2, unsigned int Width);
9 | void cemberCiz(BYTE* Buffer, int x, int y, int r, int width, int height);
10 | void cizgiCiz(BYTE* Buffer, int x0, int y0, int x1, int y1, int width, int height);
11 | int* histogram(BYTE* buffer, int width, int height);
12 | BYTE* HistogramEqualization(BYTE* buffer, int width, int height);
13 | BYTE* k_means(BYTE *Buffer, unsigned int Width, unsigned int Height);
14 | BYTE* dilation(BYTE *Buffer, unsigned int Width, unsigned int Height);
15 | BYTE* erosion(BYTE *Buffer, unsigned int Width, unsigned int Height);
16 | BYTE* Sinirlar(BYTE*Buffer, int uzunluk, int yukseklik, int option);
17 | float oklid_Distance(float *arr1, float *arr2, int size);
18 | BYTE* Tumleme(BYTE*Buffer, int uzunluk, int yukseklik, int option);
19 | BYTE *canny_Andhough(BYTE *Buffer, unsigned int Width, unsigned int Height);
20 | void draw(BYTE *Buffer, unsigned int Width, unsigned int Height, int padding, int x1, int x2, int y1, int y2, int renk);
21 | BYTE* ObjectDetect(BYTE* buffer, int width, int height, int %label);
22 | BYTE *object_recognition(BYTE *Buffer, unsigned int Width, unsigned int Height);
23 | BYTE* MoveImage(BYTE* buffer, int width, int height);
24 | BYTE* RotateImage(BYTE* buffer, int width, int height,int angle);
25 | BYTE* RotateImageAlias(BYTE* buffer, int width, int height, int angle);
26 | BYTE* MirrorImage(BYTE* buffer, int width, int height, int angle);
27 | BYTE* Shearing(BYTE* buffer, int width, int height, double coefficients, int direction);
28 |
29 |
30 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.asm:
--------------------------------------------------------------------------------
1 | ; Listing generated by Microsoft (R) Optimizing Compiler Version 19.16.27026.1
2 |
3 | ; Generated by VC++ for Common Language Runtime
4 | .file "C:\Users\Orkhan ALIYEV\AppData\Local\Temp\.NETFramework,Version=v4.6.1.AssemblyAttributes.cpp"
5 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/Canny.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/Canny.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/EqualHistogram.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/EqualHistogram.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CL.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CL.command.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CL.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CL.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CLR.DLL.bi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CLR.DLL.bi
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CLUI.DLL.bi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/CLUI.DLL.bi
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/GoruntuIslemeProjeleri.lastbuildstate:
--------------------------------------------------------------------------------
1 | #TargetFrameworkVersion=v4.6.1:PlatformToolSet=v141:EnableManagedIncrementalBuild=true:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
2 | Debug|x64|C:\Users\Orkhan ALIYEV\Desktop\GoruntuIslemeProjeleri_\|
3 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/GoruntuIslemeProjeleri.write.1u.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/GoruntuIslemeProjeleri.write.1u.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/TZRES.DLL.bi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/TZRES.DLL.bi
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-rc.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044-rc.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2044.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-rc.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452-rc.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.2452.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-rc.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420-rc.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5420.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5676.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5676.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5676.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5676.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-rc.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968-rc.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.5968.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-rc.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388-rc.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.9388.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.command.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/link.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/metagen.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/metagen.read.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/metagen.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/metagen.write.1.tlog
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/unsuccessfulbuild:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuI.C8D72D1C.tlog/unsuccessfulbuild
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.Canny.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.Canny.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.EqualHistogram.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.EqualHistogram.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.Histogram.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.Histogram.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.MyForm.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.MyForm.resources
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.log:
--------------------------------------------------------------------------------
1 | EqualHistogram.obj : MSIL module encountered; incremental linking is disabled for MSIL; performing full link
2 | LINK : error LNK2001: unresolved external symbol main
3 | C:\Users\Orkhan ALIYEV\Desktop\GoruntuIslemeProjeleri_\x64\Debug\GoruntuIslemeProjeleri.exe : fatal error LNK1120: 1 unresolved externals
4 |
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.vcxproj.GenerateResource.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.vcxproj.GenerateResource.cache
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.vcxprojAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/GoruntuIslemeProjeleri.vcxprojAssemblyReference.cache
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/Histogram.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/Histogram.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/MyForm.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/MyForm.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/imge_bmp.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/imge_bmp.obj
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/x64/Debug/vc141.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/x64/Debug/vc141.pdb
--------------------------------------------------------------------------------
/GoruntuIslemeProjeleri/zoomed.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/GoruntuIslemeProjeleri/zoomed.bmp
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/README.md
--------------------------------------------------------------------------------
/x64/Debug/GoruntuIslemeProjeleri.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyevorkhan/ImageProcessingProjects/99c163a42ac51386057da87b2546842ac326a260/x64/Debug/GoruntuIslemeProjeleri.pdb
--------------------------------------------------------------------------------