Skip to content
Snippets Groups Projects
Commit 470da5d9 authored by Angeline Aguinaldo's avatar Angeline Aguinaldo
Browse files

good revisions (were reseted by accident)

parent 07d4bb2a
Branches
No related tags found
No related merge requests found
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
<file leaf-file-name="PixelRep_Demo.py" pinned="false" current-in-tab="true"> <file leaf-file-name="PixelRep_Demo.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/PixelRep_Demo.py"> <entry file="file://$PROJECT_DIR$/PixelRep_Demo.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230"> <state relative-caret-position="332">
<caret line="43" column="42" selection-start-line="43" selection-start-column="42" selection-end-line="43" selection-end-column="42" /> <caret line="35" column="32" selection-start-line="35" selection-start-column="32" selection-end-line="35" selection-end-column="32" />
<folding> <folding>
<element signature="e#1534#1568#0" expanded="true" /> <element signature="e#1584#1618#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
...@@ -36,8 +36,8 @@ ...@@ -36,8 +36,8 @@
<file leaf-file-name="PIXEL_REPLICATION_LIB.py" pinned="false" current-in-tab="false"> <file leaf-file-name="PIXEL_REPLICATION_LIB.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PIXEL_REPLICATION_LIB.py"> <entry file="file://$PROJECT_DIR$/PIXEL_REPLICATION_LIB.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-531"> <state relative-caret-position="1411">
<caret line="38" column="22" selection-start-line="38" selection-start-column="22" selection-end-line="38" selection-end-column="22" /> <caret line="83" column="30" selection-start-line="83" selection-start-column="30" selection-end-line="83" selection-end-column="30" />
<folding /> <folding />
</state> </state>
</provider> </provider>
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
<file leaf-file-name="GENERATE_ELLIPSE_LIB.py" pinned="false" current-in-tab="false"> <file leaf-file-name="GENERATE_ELLIPSE_LIB.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/GENERATE_ELLIPSE_LIB.py"> <entry file="file://$PROJECT_DIR$/GENERATE_ELLIPSE_LIB.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2444"> <state relative-caret-position="1428">
<caret line="196" column="0" selection-start-line="196" selection-start-column="0" selection-end-line="196" selection-end-column="0" /> <caret line="84" column="33" selection-start-line="84" selection-start-column="33" selection-end-line="84" selection-end-column="33" />
<folding /> <folding />
</state> </state>
</provider> </provider>
...@@ -96,6 +96,7 @@ ...@@ -96,6 +96,7 @@
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<PATH> <PATH>
...@@ -120,7 +121,6 @@ ...@@ -120,7 +121,6 @@
</PATH> </PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" />
<pane id="Scratches" /> <pane id="Scratches" />
</panes> </panes>
</component> </component>
...@@ -329,10 +329,10 @@ ...@@ -329,10 +329,10 @@
<frame x="1912" y="-8" width="1936" height="1056" extended-state="6" /> <frame x="1912" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21875" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.10208333" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32921812" sideWeight="0.50208336" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32921812" sideWeight="0.50208336" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.6359375" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Python Console" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33802083" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3281893" sideWeight="0.49791667" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3281893" sideWeight="0.49791667" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
...@@ -366,6 +366,32 @@ ...@@ -366,6 +366,32 @@
<watches-manager /> <watches-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/PixelRep_Demo.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="986">
<caret line="59" column="7" selection-start-line="59" selection-start-column="7" selection-end-line="59" selection-end-column="7" />
<folding>
<element signature="e#1584#1618#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PIXEL_REPLICATION_LIB.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/GENERATE_ELLIPSE_LIB.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1428">
<caret line="84" column="33" selection-start-line="84" selection-start-column="33" selection-end-line="84" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/GenerateEllipseLib.py" /> <entry file="file://$PROJECT_DIR$/GenerateEllipseLib.py" />
<entry file="file://$PROJECT_DIR$/PixelRepLib.py" /> <entry file="file://$PROJECT_DIR$/PixelRepLib.py" />
<entry file="file://$PROJECT_DIR$/PixelReplication.py" /> <entry file="file://$PROJECT_DIR$/PixelReplication.py" />
...@@ -373,7 +399,6 @@ ...@@ -373,7 +399,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -381,7 +406,6 @@ ...@@ -381,7 +406,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -389,7 +413,6 @@ ...@@ -389,7 +413,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -414,7 +437,7 @@ ...@@ -414,7 +437,7 @@
<state relative-caret-position="230"> <state relative-caret-position="230">
<caret line="34" column="5" selection-start-line="34" selection-start-column="5" selection-end-line="34" selection-end-column="5" /> <caret line="34" column="5" selection-start-line="34" selection-start-column="5" selection-end-line="34" selection-end-column="5" />
<folding> <folding>
<element signature="e#1534#1568#0" expanded="true" /> <element signature="e#1584#1618#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
...@@ -426,7 +449,6 @@ ...@@ -426,7 +449,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -446,26 +468,26 @@ ...@@ -446,26 +468,26 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/GENERATE_ELLIPSE_LIB.py"> <entry file="file://$PROJECT_DIR$/GENERATE_ELLIPSE_LIB.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2444"> <state relative-caret-position="1428">
<caret line="196" column="0" selection-start-line="196" selection-start-column="0" selection-end-line="196" selection-end-column="0" /> <caret line="84" column="33" selection-start-line="84" selection-start-column="33" selection-end-line="84" selection-end-column="33" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/PIXEL_REPLICATION_LIB.py"> <entry file="file://$PROJECT_DIR$/PIXEL_REPLICATION_LIB.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-531"> <state relative-caret-position="1411">
<caret line="38" column="22" selection-start-line="38" selection-start-column="22" selection-end-line="38" selection-end-column="22" /> <caret line="83" column="30" selection-start-line="83" selection-start-column="30" selection-end-line="83" selection-end-column="30" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/PixelRep_Demo.py"> <entry file="file://$PROJECT_DIR$/PixelRep_Demo.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230"> <state relative-caret-position="332">
<caret line="43" column="42" selection-start-line="43" selection-start-column="42" selection-end-line="43" selection-end-column="42" /> <caret line="35" column="32" selection-start-line="35" selection-start-column="32" selection-end-line="35" selection-end-column="32" />
<folding> <folding>
<element signature="e#1534#1568#0" expanded="true" /> <element signature="e#1584#1618#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
......
...@@ -60,9 +60,9 @@ def GetRandomEllipseImage(K): ...@@ -60,9 +60,9 @@ def GetRandomEllipseImage(K):
ptsSub2Ind = np.ravel_multi_index([np.array(pts[k][0:,0]), np.array(pts[k][0:,1])], [bw.shape[0], bw.shape[1]]) ptsSub2Ind = np.ravel_multi_index([np.array(pts[k][0:,0]), np.array(pts[k][0:,1])], [bw.shape[0], bw.shape[1]])
idxPts.append(ptsSub2Ind) idxPts.append(ptsSub2Ind)
bNoFullOverlap = GetOverlap(idxPts) bGoodOverlap = GetOverlap(idxPts)
if bNoFullOverlap: if bGoodOverlap:
bValidEllipse = True bValidEllipse = True
ptsCombined = np.concatenate(pts[0:K]) ptsCombined = np.concatenate(pts[0:K])
...@@ -84,7 +84,7 @@ def GetRandomEllipseImage(K): ...@@ -84,7 +84,7 @@ def GetRandomEllipseImage(K):
bwEdge = np.uint8(bwEdge) bwEdge = np.uint8(bwEdge)
ptsEdge = np.where(bwEdge == 1) ptsEdge = np.where(bwEdge == 1)
return bw, ptsEdge, idxPts return bw, ptsEdge
def genEllipse(mu, cv, c, bFill): def genEllipse(mu, cv, c, bFill):
import numpy as np import numpy as np
...@@ -180,7 +180,7 @@ def GetRandomEllipsePts(mu, IMSIZE): ...@@ -180,7 +180,7 @@ def GetRandomEllipsePts(mu, IMSIZE):
def GetOverlap(idxPts): def GetOverlap(idxPts):
import numpy as np import numpy as np
bNoFullOverlap = True bGoodOverlap = True
K = len(idxPts) K = len(idxPts)
for k in np.arange(0, K, 1): for k in np.arange(0, K, 1):
...@@ -189,12 +189,14 @@ def GetOverlap(idxPts): ...@@ -189,12 +189,14 @@ def GetOverlap(idxPts):
for i in kOther: for i in kOther:
idxPts_other = np.append(idxPts_other, idxPts[i]) idxPts_other = np.append(idxPts_other, idxPts[i])
idxPts_test = idxPts[k] idxPts_test = idxPts[k]
intPts = np.intersect1d(idxPts_other, idxPts_test) intersectPts = np.intersect1d(idxPts_other, idxPts_test)
diffPts = idxPts_test.size - intPts.size diffPts = idxPts_test.size - intersectPts.size
if diffPts < 100: if diffPts < 200:
bNoFullOverlap = False bGoodOverlap = False
break break
if intersectPts.size == 0:
return bNoFullOverlap bGoodOverlap = False
break
return bGoodOverlap
bwim = GetRandomEllipseImage(5) bwim = GetRandomEllipseImage(5)
...@@ -40,7 +40,7 @@ def PixelReplicate(bwim): ...@@ -40,7 +40,7 @@ def PixelReplicate(bwim):
import cv2 import cv2
print("Computing Distance Transform...") print("Computing Distance Transform...")
bwd = cv2.distanceTransform(bwim, distanceType=cv2.DIST_L2, maskSize=5) bwd = cv2.distanceTransform(bwim, distanceType=cv2.DIST_L2, maskSize=cv2.DIST_MASK_3)
bwd = np.asmatrix(bwd, dtype=float) bwd = np.asmatrix(bwd, dtype=float)
roundBwd = np.round(bwd) roundBwd = np.round(bwd)
nPtsRep = np.sum(roundBwd, dtype=int) nPtsRep = np.sum(roundBwd, dtype=int)
...@@ -90,15 +90,25 @@ def drawClusters(gmmfit, bwim, ptsEdge): ...@@ -90,15 +90,25 @@ def drawClusters(gmmfit, bwim, ptsEdge):
print("Clusters Found: ", np.unique(clusters)+1) print("Clusters Found: ", np.unique(clusters)+1)
plt.figure() plt.figure()
plt.imshow(bwim, cmap='gray') black = np.zeros((bwim.shape[0], bwim.shape[1]))
bwLabel = np.zeros((bwim.shape[0], bwim.shape[1]))
plt.imshow(black, cmap='gray')
plt.hold(True) plt.hold(True)
print("Plotting...") print("Plotting...")
colors = ['m', 'r', 'c', 'g', 'y', 'b'] colors = ['m', 'r', 'c', 'g', 'y', 'b']
for h in np.unique(clusters): for h in np.unique(clusters):
clustIdx = np.where(clusters == h) clustIdx = np.where(clusters == h)
clustIdx = clustIdx[0] clustIdx = clustIdx[0]
plt.scatter(x=pts[clustIdx, 1], y=pts[clustIdx, 0], c=colors[h]) bwLabel[np.array([pts[clustIdx, 0]]), np.array([pts[clustIdx, 1]])] = h
plt.scatter(ptsEdge[1], ptsEdge[0], c='w', lw=0, s=7) plt.scatter(x=pts[clustIdx, 1], y=pts[clustIdx, 0], s=50, c=colors[h], lw=0)
plt.scatter(ptsEdge[1], ptsEdge[0], s=50, c='w', lw=0)
plt.axis('off')
plt.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0)
plt.margins(0)
plt.autoscale(enable=True, axis='both', tight='True')
plt.show() plt.show()
plt.hold(False) plt.hold(False)
return
\ No newline at end of file bwLabel = np.uint8(bwLabel)
return bwLabel
\ No newline at end of file
# To run the PixelRep_Demo, run this Python file.
# Copyright (c) 2016, Drexel University # Copyright (c) 2016, Drexel University
# All rights reserved. # All rights reserved.
...@@ -33,11 +34,11 @@ import GENERATE_ELLIPSE_LIB as GenEllipse ...@@ -33,11 +34,11 @@ import GENERATE_ELLIPSE_LIB as GenEllipse
# Generate random ellipse image # Generate random ellipse image
print("Generating Ellipse...") print("Generating Ellipse...")
K = 3 # number of ellipse to fit K = 3 # number of ellipse to fit
bwim, trueBounds, idxPts = GenEllipse.GetRandomEllipseImage(K) bwim, trueBounds = GenEllipse.GetRandomEllipseImage(K)
# # You may import an image for demo by uncommenting the following code: # # You may import an image for demo by uncommenting the following code:
# import cv2 # import cv2
# im = cv2.imread('U:\Angeline\PixelRep\Ellipse.tif', cv2.CV_8UC1) # im = cv2.imread('INSERT FILENAME', cv2.CV_8UC1)
# th, bwim = cv2.threshold(im, 0, 1, cv2.THRESH_BINARY) # th, bwim = cv2.threshold(im, 0, 1, cv2.THRESH_BINARY)
# trueBounds = [0, 0] # trueBounds = [0, 0]
# # (Remember to modify K number of ellipses) # # (Remember to modify K number of ellipses)
...@@ -56,7 +57,7 @@ gmmfit = PR.fitGMM(ptsRep, K) ...@@ -56,7 +57,7 @@ gmmfit = PR.fitGMM(ptsRep, K)
# Draw clusters # Draw clusters
PR.drawClusters(gmmfit, bwim, trueBounds) bwLabel = PR.drawClusters(gmmfit, bwim, trueBounds)
......
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment