Search Returned...
Ogden Snails
Tuesday, May 13th, 2025 at 21:02:42 This is 44 frames. Exposure is about 1/4 of a second per frame. Total Duration is about 7 minutes. The camera is moving almost every frame. Stabilization was done with photoshop layers. John Harvey Photo > Ogden Snails
|
|
Ogden Point Urchins
Tuesday, May 13th, 2025 at 21:02:42 This is 66 images. Stabilization was done with a python script: import cv2 import numpy as np import matplotlib.pyplot as plt import pprint import math # /opt/homebrew/bin/ffmpeg -framerate 30 -pattern_type glob -i '*_EurchinsHg.jpg' -c:v libx264 -crf 20 EurchinsHg.mp4 # /opt/homebrew/bin/ffmpeg -i EurchinsHg.mp4 -vf "vidstabtransform=input=transforms.trf" -crf 20 EurchinsStabilized.mp4 def replace_color_with_image(background, overlay, target_color, tolerance, output_path): """ Replaces a specific color in an image with another image. Args: background_path (str): Path to the background image. overlay_path (str): Path to the overlay image (can be the same as background if no overlay needed). target_color (tuple): RGB color to replace (e.g., (255, 0, 0) for red). tolerance (int): Tolerance range for color matching. replacement_image_path (str): Path to the replacement image. output_path (str): Path to save the output image. """ if background is None or overlay is None: raise FileNotFoundError("One or more images not found.") # Create a mask for the target color lower_bound = np.array([max(0, c - tolerance) for c in target_color], dtype="uint8") upper_bound = np.array([min(255, c + tolerance) for c in target_color], dtype="uint8") mask = cv2.inRange(overlay, lower_bound, upper_bound) kernel = np.ones((3, 3), np.uint8) dialated_mask = cv2.dilate(mask, kernel, iterations=1) mask_rgb = cv2.merge((dialated_mask,dialated_mask,dialated_mask)) mask_inv = cv2.bitwise_not(dialated_mask) mask_inv_rgb = cv2.merge((mask_inv,mask_inv,mask_inv)) masked_background = cv2.bitwise_and(mask_rgb, background) # pixels from background where target_color is in the overlay. masked_overlay = cv2.bitwise_and(mask_inv_rgb, overlay) # pixels from background where target_color is in the overlay. combined = cv2.add(masked_background, masked_overlay) cv2.imwrite(output_path, combined) f = open("transforms.trf", "w") f.write("VID.STAB 1") f.write("# accuracy = 15") f.write("# shakiness = 3") f.write("# stepsize = 4") f.write("# mincontrast = 0.200000") f.write("Frame 1 (List 0 []) ") img1 = cv2.imread('0012_EurchinsHg.jpg') mask = cv2.imread('mask.png', cv2.IMREAD_GRAYSCALE) currentMask = mask #sift sift = cv2.SIFT_create() keypoints_1, descriptors_1 = sift.detectAndCompute(img1,mask) for n in range(1,67): # Remember to +1 the end number. print("Frame " + str(n)) img2 = cv2.imread("{:04d}_EurchinsHg.jpg".format(n)) #img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) keypoints_2, descriptors_2 = sift.detectAndCompute(img2,currentMask) #feature matching bf = cv2.BFMatcher(cv2.NORM_L1, crossCheck=True) matches = bf.match(descriptors_1,descriptors_2) matches = sorted(matches, key = lambda x:x.distance) # Get key points points1 = np.float32([keypoints_1[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2) points2 = np.float32([keypoints_2[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2) # Affine matrix matrix, _ = cv2.findHomography(points2, points1, cv2.RANSAC, ransacReprojThreshold=5.0) # Align new_background_color = (0, 255, 0) # Green aligned_image = cv2.warpPerspective(img2, matrix, (img1.shape[1], img1.shape[0]), borderValue=new_background_color) replace_color_with_image(img1, aligned_image, new_background_color, 1, "aligned_{:04d}_EurchinsHg.jpg".format(n)) f.close()The actual stabilization is done with ffmpeg: /opt/homebrew/bin/ffmpeg -framerate 30 -pattern_type glob -i 'aligned_*_EurchinsHg.jpg' -c:v libx264 -crf 20 AlignedEurchinsHg.mp4 Species: Strongylocentrotus droebachiensis (Green Sea Urchin), Strongylocentrotus purpuratus (Purple Sea Urchin)
John Harvey Photo > Ogden Point Urchins
|
|
Last Of Cherry Blossums
Tuesday, May 13th, 2025 at 21:02:38 Last Of Cherry Blossums John Harvey Photo > Last Of Cherry Blossums
|
|
Northern Saw Whet Owl
Saturday, April 5th, 2025 at 23:43:32 Northern Saw Whet Owl Species: Aegolius acadicus (Northern Saw-whet Owl)
John Harvey Photo > Blogs for 2025 to 2005 > March 2025 > Northern Saw Whet Owl
|
|
Chinatown Parade 2025
Sunday, February 9th, 2025 at 21:39:16 Chinatown Parade 2025
|
|
Neon In The Rain
Saturday, January 25th, 2025 at 20:00:11 Neon In The Rain John Harvey Photo > Trips out of the Country > Hong Kong 15 > Neon In The Rain
|
|
Snowy Owl
Sunday, January 19th, 2025 at 18:45:20 Snowy Owl Species: Bubo scandiacus (Snowy Owl)
John Harvey Photo > Blogs for 2025 to 2005 > December 2024 > Snowy Owl
|
|
Puffins
Sunday, October 6th, 2024 at 18:24:38 Puffins John Harvey Photo > John's Overnight Page > Oregon Coast Road Trip > North Oregon Coast > Puffins
|
|
Newport Sealions
Tuesday, October 1st, 2024 at 00:05:31 Newport Sealions Tags: marine mammal
Species: Zalophus californianus (California sea lion)
John Harvey Photo > John's Overnight Page > Oregon Coast Road Trip > Mid Oregon Coast > Newport Sealions
|
|
Pigeon Guillemot
Tuesday, October 1st, 2024 at 00:05:31 Pigeon Guillemot John Harvey Photo > John's Overnight Page > Oregon Coast Road Trip > Mid Oregon Coast > Pigeon Guillemot
|
|
Whitewater In Washing Machine
Wednesday, September 18th, 2024 at 22:31:26 Whitewater In Washing Machine John Harvey Photo > John's Overnight Page > Oregon Coast Road Trip > Portland > Whitewater In Washing Machine
|
|
Malaysia Fireworks
Monday, July 29th, 2024 at 23:00:06 This is 5 different timelapses joined together. It starts with a sunset shot (8pm - every 8 seconds). After the sun set, I focused on the human powered boats, still shot aperture priority. After the sun was really set (perhaps 9:50), I switched to manual model at f8, 5 second exposure every 6 seconds. I shot three different angles. This sequence is 1247 images. John Harvey Photo > Blogs for 2025 to 2005 > July 2024 > Malaysia Fireworks
|
|
Portugal Sunset Fireworks
Monday, July 29th, 2024 at 23:00:05 Photography started at 8:31pm and I took a photo every 6 seconds until 10:31 - 1205 photos. Expose started at f8, 1/250th of a second at ISO 100 and ended at f8, 5 seconds at ISO 1600. It is shot aperture priority (f8) with the time limited to 5 seconds and the sensitivity on auto. I use LRTimeLapse to adjust the exposure and FinalCut Pro to reduce some of the bumps (but two are still visible). It's shot full resolution (8105 x 5403) in raw (maybe 14 bit) so I can take individual images out later. Focal length was set to 27mm. John Harvey Photo > Blogs for 2025 to 2005 > July 2024 > Portugal Sunset Fireworks
|
|
Cabo Sunset
Wednesday, April 24th, 2024 at 21:00:53 I needed to stabilize this image (I forgot to turn off the auto focus) so I used Final Cut Pro. This video is 948 images long. The first image was taken March 24th at 5:49:15pm and photos were taken every 8 seconds until 7:54:30pm. Exposure starts at f8, 1/400, ISO 100 and finished at f8, 6 seconds and ISO 1250. This is 11 + 1/3 stops in shutter time difference and 3 + 2/3 stops in ISO sensitivity to make 15 stops difference. This is the view from the deck of the place we stayed (5351 in El Encanto De La Hacienda (the building) at Hacienda Encantada (resort name)). John Harvey Photo > Trips out of the Country > Cabo San Lucas > Cabo Sunset
|
|
Cabo Sunset Stabilized
Saturday, April 20th, 2024 at 22:49:17 The black bars are my bad. I needed to stabilize this image (I forgot to turn off the auto focus) so I used Final Cut Pro. My Final Cut Pro project was set to 16:9 which gave it black bars. This video is 948 images long. The first image was taken March 24th at 5:49:15pm and photos were taken every 8 seconds until 7:54:30pm. Exposure starts at f8, 1/400, ISO 100 and finished at f8, 6 seconds and ISO 1250. This is 11 + 1/3 stops in shutter time difference and 3 + 2/3 stops in ISO sensitivity to make 15 stops difference. This is the view from the deck of the place we stayed (5351 in El Encanto De La Hacienda (the building) at Hacienda Encantada (resort name)).
|
|
Sunset From 733 Seymour
Saturday, March 16th, 2024 at 13:50:12 This is 740 frames. Started at 4:17pm at f8, 1/250th of a second. Ended at 5:56pm, at f8, 6 seconds per exposure, ISO 180. The interval was 8 seconds. I brought my big tripod to get over the glass wall. The lens was set to 28mm. John Harvey Photo > Blogs for 2025 to 2005 > January 2024 > Sunset From 733 Seymour
|
|
First Night
Sunday, January 28th, 2024 at 21:45:14 This was taken at 20mm. I started at 7:14:57 and took a photo every 8 seconds until 10:07:27pm (1296 images). The camera started at f8, 1/500th, ISO 100 and ended at f8, 5 seconds at ISO 3200. Nara and I go out Kayaking and come back in this sequence. John Harvey Photo > John's Overnight Page > Halfmoon Bay > First Night
|
|
Sunset With Layers Of Cloud
Sunday, January 28th, 2024 at 21:45:14 I started at 7:49:55pm and took a photo every 8 seconds until 9:50:59pm (909 images). I started at f8, 1/640, ISO 100 and ended at f8, 6 seconds, ISO 720. The lens was set at 24mm. John Harvey Photo > John's Overnight Page > Halfmoon Bay > Sunset With Layers Of Cloud
|
|
Skookumchuck Narrows Flow
Sunday, January 28th, 2024 at 21:45:14 This was shot in the camera and stabilized in post (Final Cut Pro). John Harvey Photo > John's Overnight Page > Halfmoon Bay > Skookumchuck Narrows Flow
|
|
Fireworks On Clear Night
Friday, October 13th, 2023 at 22:11:05 This timelapse started at 8:41pm (F8.0, 1/320, ISO 100) and photos were taken every 6 seconds until 10:35pm (f8, 4 seconds, ISO 100) for 1137 frames. The lens was set to 34mm. John Harvey Photo > Blogs for 2025 to 2005 > July 2023 > Fireworks On Clear Night
|