kopia lustrzana https://github.com/Reenforcements/PES-Embroidery
Color matching works
rodzic
5a06828d97
commit
ec27f221a5
|
@ -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>
|
||||
|
|
40
src/PES.py
40
src/PES.py
|
@ -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
|
BIN
src/PES.pyc
BIN
src/PES.pyc
Plik binarny nie jest wyświetlany.
|
@ -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:
|
||||
|
|
Ładowanie…
Reference in New Issue