Hello James,
I think the code should be the following:
import PhotoScan
doc = PhotoScan.app.document
chunk = doc.activeChunk
point_cloud = chunk.point_cloud
point_proj = point_cloud.projections
photo_matches = list()
total_matches = list() #here the result will be stored
for photo in chunk.photos:
try:
photo_proj = point_proj[photo]
total = set()
for proj in photo_proj:
total.add(proj.index)
except:
total = set()
photo_matches.append(total)
for i in range(0, len(chunk.photos) - 1):
for j in range(i + 1, len(chunk.photos)):
match = photo_matches[i] & photo_matches[j]
total = 0
valid = 0
invalid = 0
for p_index in match:
if point_cloud.points[p_index].valid:
valid += 1
total = len(match)
invalid = total - valid
total_matches.append((chunk.photos[i].label, chunk.photos[j].label, total, valid, invalid)) #the result - photo1, photo2, total, valid, invalid