fantos commited on
Commit
577e2d7
·
verified ·
1 Parent(s): 6eb0ffe

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +14 -2
utils.py CHANGED
@@ -94,8 +94,12 @@ class WatermarkProcessor:
94
  for j in range(image.shape[1]):
95
  for k in range(3):
96
  if data_index < len(binary_secret):
97
- # Clear LSB and add data bit
98
- image[i, j, k] = (image[i, j, k] & ~1) | int(binary_secret[data_index])
 
 
 
 
99
  data_index += 1
100
  else:
101
  break
@@ -115,6 +119,14 @@ class WatermarkProcessor:
115
  def decode(self, image_path):
116
  """Decode watermark using simple LSB steganography"""
117
  try:
 
 
 
 
 
 
 
 
118
  image = cv2.imread(image_path)
119
  if image is None:
120
  raise ValueError("Could not read image file")
 
94
  for j in range(image.shape[1]):
95
  for k in range(3):
96
  if data_index < len(binary_secret):
97
+ # Get current pixel value
98
+ pixel = image[i, j, k]
99
+ # Clear the LSB by setting it to 0 and add the watermark bit
100
+ pixel = (pixel & 0xFE) | (int(binary_secret[data_index]) & 0x01)
101
+ # Ensure value stays within uint8 range
102
+ image[i, j, k] = np.uint8(pixel)
103
  data_index += 1
104
  else:
105
  break
 
119
  def decode(self, image_path):
120
  """Decode watermark using simple LSB steganography"""
121
  try:
122
+ # Try PNG metadata method first
123
+ try:
124
+ im = Image.open(image_path)
125
+ if "TXT" in im.info:
126
+ return im.info["TXT"]
127
+ except:
128
+ pass
129
+
130
  image = cv2.imread(image_path)
131
  if image is None:
132
  raise ValueError("Could not read image file")