Color matching works

pull/4/head
Reenforcements 2018-11-22 15:52:37 -05:00
rodzic 5a06828d97
commit ec27f221a5
4 zmienionych plików z 88 dodań i 78 usunięć

Wyświetl plik

@ -3,11 +3,8 @@
<component name="ChangeListManager">
<list default="true" id="0b5af789-e47c-4138-bdb9-8fa765481e1e" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Tests/simplePath.svg" beforeDir="false" afterPath="$PROJECT_DIR$/Tests/simplePath.svg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/PES.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/PES.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/svgFunctions.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/svgFunctions.py" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@ -17,7 +14,7 @@
</component>
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/PES_Embroidery$svgImport.coverage" NAME="svgImport Coverage Results" MODIFIED="1541478220694" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/learning" />
<SUITE FILE_PATH="coverage/PES_Embroidery$main.coverage" NAME="main Coverage Results" MODIFIED="1542919062341" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src" />
<SUITE FILE_PATH="coverage/PES_Embroidery$main.coverage" NAME="main Coverage Results" MODIFIED="1542919599191" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src" />
<SUITE FILE_PATH="coverage/PES_Embroidery$PECRender_main.coverage" NAME="PECRender-main Coverage Results" MODIFIED="1542678577371" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/PECRender" />
<SUITE FILE_PATH="coverage/PES_Embroidery$getColors.coverage" NAME="getColors Coverage Results" MODIFIED="1542917684965" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/Colors" />
<SUITE FILE_PATH="coverage/PES_Embroidery$main__1_.coverage" NAME="PECRender-main Coverage Results" MODIFIED="1542509072203" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/PECRender" />
@ -38,7 +35,7 @@
<usages-collector id="statistics.vcs.git.usages" />
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="Python" value="23003" />
<entry key="Python" value="23405" />
</counts>
</usages-collector>
<usages-collector id="statistics.js.language.service.starts" />
@ -56,7 +53,7 @@
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="py" value="23003" />
<entry key="py" value="23405" />
</counts>
</usages-collector>
</session>
@ -66,8 +63,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="282">
<caret line="31" column="41" lean-forward="true" selection-start-line="31" selection-start-column="41" selection-end-line="31" selection-end-column="41" />
<state relative-caret-position="403">
<caret line="41" lean-forward="true" selection-start-line="41" selection-end-line="41" />
<folding>
<element signature="e#0#15#0" expanded="true" />
</folding>
@ -75,10 +72,31 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/PES.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="730">
<caret line="271" column="12" lean-forward="true" selection-start-line="271" selection-start-column="12" selection-end-line="271" selection-end-column="12" />
<folding>
<element signature="e#0#23#0" expanded="true" />
<marker date="1542919944286" expanded="true" signature="133:210" ph="..." />
<marker date="1542919944286" expanded="true" signature="387:427" ph="..." />
<marker date="1542919944286" expanded="true" signature="3372:3919" ph="..." />
<marker date="1542919944286" expanded="true" signature="4944:6662" ph="..." />
<marker date="1542919944286" expanded="true" signature="6840:6918" ph="..." />
<marker date="1542919944286" expanded="true" signature="6932:6971" ph="..." />
<marker date="1542919944286" expanded="true" signature="7158:7163" ph="..." />
<marker date="1542919944286" expanded="true" signature="7447:7453" ph="..." />
<marker date="1542919944286" expanded="true" signature="7639:7644" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/svgFunctions.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1575">
<state relative-caret-position="1502">
<caret line="105" column="33" lean-forward="true" selection-start-line="105" selection-start-column="33" selection-end-line="105" selection-end-column="33" />
<folding>
<element signature="e#0#19#0" expanded="true" />
@ -94,8 +112,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Colors/getColors.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="513">
<caret line="78" column="15" lean-forward="true" selection-start-line="78" selection-start-column="15" selection-end-line="78" selection-end-column="15" />
<state relative-caret-position="437">
<caret line="42" column="37" lean-forward="true" selection-start-line="42" selection-start-column="37" selection-end-line="42" selection-end-column="37" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
@ -103,26 +121,6 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/PES.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="400">
<caret line="102" column="48" selection-start-line="102" selection-start-column="48" selection-end-line="102" selection-end-column="48" />
<folding>
<element signature="e#0#23#0" expanded="true" />
<marker date="1542919229810" expanded="true" signature="133:210" ph="..." />
<marker date="1542919229810" expanded="true" signature="387:427" ph="..." />
<marker date="1542919229810" expanded="true" signature="3372:3633" ph="..." />
<marker date="1542919229810" expanded="true" signature="4664:6341" ph="..." />
<marker date="1542919229810" expanded="true" signature="6519:6597" ph="..." />
<marker date="1542919229810" expanded="true" signature="6611:6650" ph="..." />
<marker date="1542919229810" expanded="true" signature="6868:6873" ph="..." />
<marker date="1542919229810" expanded="true" signature="7157:7163" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/PES_Emb_mathutils.py">
<provider selected="true" editor-type-id="text-editor">
@ -191,9 +189,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>Big:</find>
<find>starting</find>
<find>0x8</find>
<find>0xfe</find>
<find>End stitches</find>
<find>Beep</find>
@ -219,8 +214,11 @@
<find>Teal</find>
<find>imag</find>
<find>attributesattributes</find>
<find>loadVectorGraphic</find>
<find>red</find>
<find>Ultramarine</find>
<find>makeStitchLines</find>
<find>loadVectorGraphic</find>
<find>getClosestColor</find>
</findStrings>
</component>
<component name="Git.Settings">
@ -239,8 +237,8 @@
<option value="$PROJECT_DIR$/src/PES_Emb_mathutils.py" />
<option value="$PROJECT_DIR$/PECRender/main.py" />
<option value="$PROJECT_DIR$/Colors/getColors.py" />
<option value="$PROJECT_DIR$/src/main.py" />
<option value="$PROJECT_DIR$/src/svgFunctions.py" />
<option value="$PROJECT_DIR$/src/main.py" />
<option value="$PROJECT_DIR$/src/PES.py" />
</list>
</option>
@ -493,17 +491,6 @@
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
<url>file://$PROJECT_DIR$/src/svgFunctions.py</url>
<line>18</line>
<option name="timeStamp" value="6" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="uml://JavaScript-modules-diagram//Users/imaustyn/Documents/MiamiUniversity/ECE 487/Project/PES-Embroidery">
<provider selected="true" editor-type-id="UmlEditorProvider">
@ -617,19 +604,19 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main.py">
<entry file="file://$PROJECT_DIR$/Colors/getColors.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="282">
<caret line="31" column="41" lean-forward="true" selection-start-line="31" selection-start-column="41" selection-end-line="31" selection-end-column="41" />
<state relative-caret-position="437">
<caret line="42" column="37" lean-forward="true" selection-start-line="42" selection-start-column="37" selection-end-line="42" selection-end-column="37" />
<folding>
<element signature="e#0#15#0" expanded="true" />
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/svgFunctions.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1575">
<state relative-caret-position="1502">
<caret line="105" column="33" lean-forward="true" selection-start-line="105" selection-start-column="33" selection-end-line="105" selection-end-column="33" />
<folding>
<element signature="e#0#19#0" expanded="true" />
@ -641,30 +628,31 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Colors/getColors.py">
<entry file="file://$PROJECT_DIR$/src/main.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="513">
<caret line="78" column="15" lean-forward="true" selection-start-line="78" selection-start-column="15" selection-end-line="78" selection-end-column="15" />
<state relative-caret-position="403">
<caret line="41" lean-forward="true" selection-start-line="41" selection-end-line="41" />
<folding>
<element signature="e#0#9#0" expanded="true" />
<element signature="e#0#15#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/PES.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="400">
<caret line="102" column="48" selection-start-line="102" selection-start-column="48" selection-end-line="102" selection-end-column="48" />
<state relative-caret-position="730">
<caret line="271" column="12" lean-forward="true" selection-start-line="271" selection-start-column="12" selection-end-line="271" selection-end-column="12" />
<folding>
<element signature="e#0#23#0" expanded="true" />
<marker date="1542919229810" expanded="true" signature="133:210" ph="..." />
<marker date="1542919229810" expanded="true" signature="387:427" ph="..." />
<marker date="1542919229810" expanded="true" signature="3372:3633" ph="..." />
<marker date="1542919229810" expanded="true" signature="4664:6341" ph="..." />
<marker date="1542919229810" expanded="true" signature="6519:6597" ph="..." />
<marker date="1542919229810" expanded="true" signature="6611:6650" ph="..." />
<marker date="1542919229810" expanded="true" signature="6868:6873" ph="..." />
<marker date="1542919229810" expanded="true" signature="7157:7163" ph="..." />
<marker date="1542919944286" expanded="true" signature="133:210" ph="..." />
<marker date="1542919944286" expanded="true" signature="387:427" ph="..." />
<marker date="1542919944286" expanded="true" signature="3372:3919" ph="..." />
<marker date="1542919944286" expanded="true" signature="4944:6662" ph="..." />
<marker date="1542919944286" expanded="true" signature="6840:6918" ph="..." />
<marker date="1542919944286" expanded="true" signature="6932:6971" ph="..." />
<marker date="1542919944286" expanded="true" signature="7158:7163" ph="..." />
<marker date="1542919944286" expanded="true" signature="7447:7453" ph="..." />
<marker date="1542919944286" expanded="true" signature="7639:7644" ph="..." />
</folding>
</state>
</provider>

Wyświetl plik

@ -96,17 +96,27 @@ class PES:
def getClosestColor(cls, color):
# Black by default
closest = 19
for cur in cls.colors:
lastDist = 9999.0
for i, cur in enumerate(cls.colors):
red = math.pow( cur[1] - color[0], 2)
green = math.pow(cur[1] - color[0], 2)
blue = math.pow(cur[1] - color[0], 2)
green = math.pow(cur[2] - color[1], 2)
blue = math.pow(cur[3] - color[2], 2)
dist = math.sqrt( red + green + blue )
if dist < lastDist:
lastDist = dist
closest = i
def __init__(self, stitchCommands=[]):
return (closest,
cls.colors[closest][0],
cls.colors[closest][1],
cls.colors[closest][2],
cls.colors[closest][3])
def __init__(self, PECCommands=[]):
self.magic = "#PES"
self.version = "0001"
self.sections = []
self.stitchCommands = []
self.PECCommands = []
def encode(self):
b = bytearray()
@ -137,10 +147,12 @@ class PES:
return b
class PEC:
def __init__(self, stitchCommands=[]):
def __init__(self, commands=[]):
self.label = "default"
self.numberOfColors = 1
self.stitchCommands = stitchCommands
# Commands include stitches, jumps, and color changes
self.commands = commands
def encode(self, b):
@ -191,8 +203,8 @@ class PEC:
b.extend([0x00] * 4)
for stitch in self.stitchCommands:
stitch.encode(b)
for command in self.commands:
command.encode(b)
# End of stitch list
b.extend(0xFF)
@ -227,7 +239,6 @@ class Stitch:
TYPE_LONG = 0x8000
TYPE_JUMP = 0x9000
TYPE_TRIM = 0xA000
TYPE_COLOR_CHANGE = 0xFEB0
# Initialize a new stitch from the previous location
# to the new location.
@ -250,3 +261,12 @@ class Stitch:
# Flips the start and end points of a stitch
def reverse(self):
self.line = Line(start=self.line.end, end=self.line.start)
class ColorChange:
TYPE_COLOR_CHANGE = 0xFEB0
def __init__(self):
None
def encode(self, b):
None

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -31,14 +31,16 @@ basicStitches = []
for i, shape in enumerate(paths):
fillColor = getColorOfPathAtIndex(attributes,i)
print("Doing shape {} with fill color {}".format(shape, fillColor))
print("Closest color: {}".format( PES.getClosestColor(fillColor) ))
stitchLines = makeStitchLines(shape,fillColor)
# Append the stitches as their own array so we can separate by colors
basicStitches.append(stitchLines)
# Make the stitches into a continuous set of commands
stitchCommands = createStitchRoutine(basicStitches)
PECCommands = createStitchRoutine(basicStitches)
pes = PES(stitchCommands=stitchCommands)
pes = PES(PECCommands=PECCommands)
pes.encode()
if args.debug: