Arindam
joined May 7, 2025
  • How to register blurry IR to sharp RGB in repeating scenes?

    I’m working on an image registration problem where I need to align a low-quality, blurry infrared (IR) image with a high-resolution RGB image of the same scene. The challenge is that the scene contains repeating structural patterns, which causes traditional feature matching (SIFT / ORB) to produce incorrect correspondences. Also, the IR image is significantly(Read More)

    I’m working on an image registration problem where I need to align a low-quality, blurry infrared (IR) image with a high-resolution RGB image of the same scene.

    The challenge is that the scene contains repeating structural patterns, which causes traditional feature matching (SIFT / ORB) to produce incorrect correspondences. Also, the IR image is significantly blurred and lower contrast, making keypoint detection unstable.

    I’ve tried basic OpenCV approaches like SIFT + FLANN, but the matches are inconsistent due to ambiguity in repetitive regions.

    Current Code Attempt (Python + OpenCV)

    import cv2
    import numpy as np
    
    # Load images
    rgb = cv2.imread("rgb.png")
    ir = cv2.imread("ir.png", cv2.IMREAD_GRAYSCALE)
    
    # Convert RGB to grayscale for matching
    rgb_gray = cv2.cvtColor(rgb, cv2.COLOR_BGR2GRAY)
    
    # Feature detector
    sift = cv2.SIFT_create()
    
    # Detect keypoints and descriptors
    kp1, des1 = sift.detectAndCompute(ir, None)
    kp2, des2 = sift.detectAndCompute(rgb_gray, None)
    
    # FLANN matcher
    FLANN_INDEX_KDTREE = 1
    index_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=5)
    search_params = dict(checks=50)
    
    flann = cv2.FlannBasedMatcher(index_params, search_params)
    matches = flann.knnMatch(des1, des2, k=2)
    
    # Lowe's ratio test
    good_matches = []
    for m, n in matches:
        if m.distance < 0.75 * n.distance:
            good_matches.append(m)
    
    print(f"Good matches found: {len(good_matches)}")
    
    # Homography (fails often due to wrong matches)
    if len(good_matches) > 10:
        src_pts = np.float32([kp1[m.queryIdx].pt for m in good_matches]).reshape(-1, 1, 2)
        dst_pts = np.float32([kp2[m.trainIdx].pt for m in good_matches]).reshape(-1, 1, 2)
    
        H, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)
    
        aligned_ir = cv2.warpPerspective(ir, H, (rgb.shape[1], rgb.shape[0]))
    else:
        print("Not enough reliable matches")
    Problem
    • Repeating structures cause ambiguous matches
    • IR image blur reduces feature quality
    • RANSAC still fails to find a stable homography in many cases

     

  • Should Microsoft Graph API support SharePoint List Views?

    Many developers working with SharePoint Online discover that while Microsoft Graph API provides access to lists, items, and metadata, it does not currently support retrieving, creating, or managing SharePoint List Views. As a result, developers often need to fall back to SharePoint REST API for view-related operations. From an architecture and developer experience perspective: Should(Read More)

    Many developers working with SharePoint Online discover that while Microsoft Graph API provides access to lists, items, and metadata, it does not currently support retrieving, creating, or managing SharePoint List Views. As a result, developers often need to fall back to SharePoint REST API for view-related operations.

    From an architecture and developer experience perspective:

    • Should Microsoft Graph become the single API layer for all SharePoint operations?
    • Is maintaining separate Graph and SharePoint REST capabilities creating unnecessary complexity?
    • What challenges have you faced when working with SharePoint List Views?
    • How are you handling this limitation in production environments?

    Share your experience, workarounds, and thoughts on the future of Microsoft Graph and SharePoint integration.

  • With AI automating dashboards, queries, and insights, what will set a data analyst apart

    AI is rapidly changing how data is collected, processed, and interpreted. Tasks that once took hours like reporting, visualization, and basic analysis are now being automated. But this shift is not eliminating the need for data analysts. It is redefining their role. The focus is moving from generating data to interpreting it, asking the right(Read More)

    AI is rapidly changing how data is collected, processed, and interpreted. Tasks that once took hours like reporting, visualization, and basic analysis are now being automated.

    But this shift is not eliminating the need for data analysts. It is redefining their role. The focus is moving from generating data to interpreting it, asking the right questions, and driving business decisions.

    This raises an important discussion for today’s analysts and teams.
    What skills will matter most in this new environment?
    How should analysts evolve to stay relevant and valuable?

  • Best way to convert API JSON response to Excel in Python?

    I’m working with an API that returns data in JSON format, and I need to convert this response into an Excel file using Python. Some of the fields in the JSON are nested (lists and dictionaries). What is the most efficient way to handle this transformation so the data can be flattened and exported properly(Read More)

    I’m working with an API that returns data in JSON format, and I need to convert this response into an Excel file using Python. Some of the fields in the JSON are nested (lists and dictionaries).

    What is the most efficient way to handle this transformation so the data can be flattened and exported properly to Excel?

    Are there recommended libraries or approaches (for example using pandas) that work best for this type of task?

  • Learning Alteryx and feeling stuck on workflow logic. How do seniors approach this?

    I’ve recently started learning Alteryx and can build basic workflows, but when multiple conditions, null handling, and transformations come in, I’m not always confident my logic is right. The workflow runs, but I’m unsure if it’s clean or scalable. Would love guidance from seniors on how you think through workflow design and avoid messy workarounds(Read More)

    I’ve recently started learning Alteryx and can build basic workflows, but when multiple conditions, null handling, and transformations come in, I’m not always confident my logic is right. The workflow runs, but I’m unsure if it’s clean or scalable. Would love guidance from seniors on how you think through workflow design and avoid messy workarounds early on.

     

Loading more threads