mikucy / cs131 Goto Github PK
View Code? Open in Web Editor NEWMy own solutions for CS131_fall1718 homework release
My own solutions for CS131_fall1718 homework release
in hw8, at iterative_lucas_kanade function
you write:
Ik = img1[y1, x1] - img2[y2, x2]
bk = np.array([np.sum(IkA1), np.sum(IkA2)])
But in equations, Ik is an array which has different values at (x,y) with x = px-w-->px+w, y=py-w-->py+w, not just a number (your code)
In my opinion, it would be Ik = img1[y1-w:y1+w+1,x1-w:x1+w+1] - img2[y2-w:y2+w+1,x2-w:x2+w+1]
with y2 = int(round(y+gy+vy)); x2 = int(round(x+gx+vx)) as mentioned in the code
Hello, I notice that you didn't complete the remove_object in the last of the hw4. I complete it, maybe not perfect.
Below is my code:
def remove_object(image, mask):
"""Remove the object present in the mask.
Returns an output image with same shape as the input image, but without the object in the mask.
Args:
image: numpy array of shape (H, W, 3)
mask: numpy boolean array of shape (H, W)
Returns:
out: numpy array of shape (H, W, 3)
"""
out = np.copy(image)
### YOUR CODE HERE
from skimage import measure
label_image = measure.label(mask)
regions = measure.regionprops(label_image)
region = regions[0]
if len(regions) != 1:
print("Maybe two objects to remove?")
# Find the biggest area of region
for i in regions:
if i.area > region.area:
region = i
transposeImage = False
if region.bbox[2] - region.bbox[0] < region.bbox[3] - region.bbox[1]:
out = np.transpose(out, (1, 0, 2))
mask = np.transpose(mask, (1, 0))
transposeImage = True
count = 0 # count time for all iteration
while not np.all(mask == 0):
energy_image = energy_function(out)
energy_image = energy_image + energy_image * mask * (-1000)
vcost, vpaths = compute_forward_cost(out, energy_image)
end = np.argmin(vcost[-1])
seam = backtrack_seam(vpaths, end)
out = remove_seam(out, seam)
mask = remove_seam(mask, seam)
count += 1
#print("count = ", count)
out = enlarge(out, out.shape[1] + count)
if transposeImage:
out = np.transpose(out, (1, 0, 2))
### END YOUR CODE
return out
The result is:
I notice that the result is not perfect, below is the picture provided by.
http://cs.brown.edu/courses/cs129/results/proj3/taox/
In the top right have some subtle change. I don't know how to do better. If you have some ideas
to improve it, we could achieve best result.
Hello, I am a beginner. In hw3_release Extra Credit: Stitching Multiple Images, I don't know how to do.
The problem said given a sequence of m images, then stitch an ordered chain of images. I want to take the first and second images then stitch together, formed a new images, then stitch together the third images. But it is too complex and maybe have some simple ways.
I notice that you haven't do this problem, if you have any idea, please complete the code. I am a beginner, it is too hard for me. Thank you so much.
Hello,
When I am working with the function find_seams, I have got the error like this:
IndexError Traceback (most recent call last)
in ()
3 # Alternatively, find k seams for removal and duplicate them.
4 start = time()
----> 5 seams = find_seams(img, W_new - W)
6 end = time()
7
~/Desktop/cv&nlp/CS131_release/hw4_release/seam_carving.py in find_seams(image, k, axis, efunc, cfunc)
331 # Store the new seam with value i+1 in the image
332 # We can assert here that we are only writing on zeros (not overwriting existing seams)
--> 333 assert np.all(seams[np.arange(H), indices[np.arange(H), seam]] == 0), "we are overwriting seams"
334 seams[np.arange(H), indices[np.arange(H), seam]] = i + 1
335
IndexError: arrays used as indices must be of integer (or boolean) type
but I didn't modify the code. Have you got any problems like this? How can I fix this error?
Hope for your reply, thanks a lot!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.