├── 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 --------------------------------------------------------------------------------