Ich möchte die Ansichten extrahieren, die im Bild unten (mit den Daten) vorhanden sind. Ich meine, die Ansichten aus dem PDF oder Bild mit den Zeichnungen eines Objekts wie (linksansicht, Frontansicht, A-A) und die Extraktion sollte alle x-y-Zahlen oder R haben, wenn sie für diese eindeutige Ansicht vorhanden ist. /> < /p>
def extract_drawings(drawing_region):
gray = cv2.cvtColor(drawing_region, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
binary_mask = cv2.adaptiveThreshold(
blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
cv2.THRESH_BINARY_INV, 21, 10
)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (15, 15))
binary_mask_cleaned = cv2.morphologyEx(binary_mask, cv2.MORPH_CLOSE, kernel, iterations=2)
contours, _ = cv2.findContours(binary_mask_cleaned, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
min_area = 20000
min_aspect = 0.25
boxes = []
for cnt in contours:
x, y, w, h = cv2.boundingRect(cnt)
area = w * h
aspect = min(w, h) / max(w, h)
if area >= min_area and aspect >= min_aspect:
boxes.append((x, y, w, h))
merged_boxes = merge_boxes(boxes, threshold=50)
expanded_boxes = []
for x, y, w, h in merged_boxes:
x2, y2, w2, h2 = expand_box(
x, y, w, h, drawing_region.shape,
top_extra=60, bottom_extra=60, left_extra=20, right_extra=20
)
expanded_boxes.append((x2, y2, w2, h2))
extracted_drawings = []
annotated = drawing_region.copy()
for x, y, w, h in expanded_boxes:
cropped_drawing = drawing_region[y:y+h, x:x+w]
extracted_drawings.append(cropped_drawing)
cv2.rectangle(annotated, (x, y), (x+w, y+h), (0, 255, 0), 3)
return extracted_drawings, annotated
< /code>
Ich habe OpenCV und Matplotlib verwendet, aber manchmal werden die verkürzten Bilder nicht vollständig korrekt extrahiert. Ich habe eine Funktion, um Blöcke zu entfernen. Manchmal wird es richtig ausgeführt, manchmal liest es das Bild als ganzer Block, da das Bild des Blaupausen eine umgebende Kontur mit Buchstaben hat (z. B. A b c d).>
Wie kann ich mehrere Ansichten aus 2D -Zeichnungsentläufen extrahieren [geschlossen] ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post