Python skimage.draw.polygon_perimeter() Examples
The following are 10
code examples of skimage.draw.polygon_perimeter().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
skimage.draw
, or try the search function
.
Example #1
Source File: img2_coord_ica.py From kaggle-airbus-ship-detection-challenge with Apache License 2.0 | 6 votes |
def coord2_boarder(mean_x, mean_y, length, aspect_ratio, rotate, img_size): W2 = np.array([[np.cos(rotate), np.sin(rotate)], [-np.sin(rotate), np.cos(rotate)]]) height = length width = height / aspect_ratio c = np.array([[-height/2, -width/2], [height/2, -width/2], [height/2, width/2], [-height/2, width/2]]) c = (W2 @ c.T).T + np.array([mean_y, mean_x]) img = np.zeros((img_size, img_size), dtype=np.uint8) rr, cc = polygon_perimeter(c[:, 0], c[:, 1]) index = (rr >= 0) * (rr < img_size) * (cc >= 0) * (cc < img_size) img[rr[index], cc[index]] = 255 return img
Example #2
Source File: bbs.py From cat-bbs with MIT License | 5 votes |
def draw_on_image(self, img, color=[0, 255, 0], alpha=1.0, thickness=1, copy=copy): assert img.dtype in [np.uint8, np.float32, np.int32, np.int64] result = np.copy(img) if copy else img for i in range(thickness): y = [self.y1-i, self.y1-i, self.y2+i, self.y2+i] x = [self.x1-i, self.x2+i, self.x2+i, self.x1-i] rr, cc = draw.polygon_perimeter(y, x, shape=img.shape) if alpha >= 0.99: result[rr, cc, 0] = color[0] result[rr, cc, 1] = color[1] result[rr, cc, 2] = color[2] else: if result.dtype == np.float32: result[rr, cc, 0] = (1 - alpha) * result[rr, cc, 0] + alpha * color[0] result[rr, cc, 1] = (1 - alpha) * result[rr, cc, 1] + alpha * color[1] result[rr, cc, 2] = (1 - alpha) * result[rr, cc, 2] + alpha * color[2] result = np.clip(result, 0, 255) else: result = result.astype(np.float32) result[rr, cc, 0] = (1 - alpha) * result[rr, cc, 0] + alpha * color[0] result[rr, cc, 1] = (1 - alpha) * result[rr, cc, 1] + alpha * color[1] result[rr, cc, 2] = (1 - alpha) * result[rr, cc, 2] + alpha * color[2] result = np.clip(result, 0, 255).astype(np.uint8) return result
Example #3
Source File: geometry.py From phidl with MIT License | 5 votes |
def _rasterize_polygons(polygons, bounds = [[-100, -100], [100, 100]], dx = 1, dy = 1): try: from skimage import draw except: raise ImportError(""" The fill function requires the module "scikit-image" to operate. Please retry after installing scikit-image: $ pip install --upgrade scikit-image """) # Prepare polygon array by shifting all points into the first quadrant and # separating points into x and y lists xpts = [] ypts = [] for p in polygons: p_array = np.asarray(p) x = p_array[:,0] y = p_array[:,1] xpts.append((x-bounds[0][0])/dx-0.5) ypts.append((y-bounds[0][1])/dy-0.5) # Initialize the raster matrix we'll be writing to xsize = int(np.ceil((bounds[1][0]-bounds[0][0]))/dx) ysize = int(np.ceil((bounds[1][1]-bounds[0][1]))/dy) raster = np.zeros((ysize, xsize), dtype=np.bool) # TODO: Replace polygon_perimeter with the supercover version for n in range(len(xpts)): rr, cc = draw.polygon(ypts[n], xpts[n], shape=raster.shape) rrp, ccp = draw.polygon_perimeter(ypts[n], xpts[n], shape=raster.shape, clip=False) raster[rr, cc] = 1 raster[rrp, ccp] = 1 return raster
Example #4
Source File: mixed_len_generator.py From CSGNet with MIT License | 5 votes |
def draw_triangle(self, center: List, length: int): """ Draw a triangle :param center: center of the triangle :param radius: radius of the triangle :return: """ arr = np.zeros(self.canvas_shape, dtype=bool) length = 1.732 * length rows = [ int(center[1] + length / (2 * 1.732)), int(center[1] + length / (2 * 1.732)), int(center[1] - length / 1.732) ] cols = [ int(center[0] - length / 2.0), int(center[0] + length / 2.0), center[0] ] rr_inner, cc_inner = draw.polygon(rows, cols, shape=self.canvas_shape) rr_boundary, cc_boundary = draw.polygon_perimeter( rows, cols, shape=self.canvas_shape) ROWS = np.concatenate((rr_inner, rr_boundary)) COLS = np.concatenate((cc_inner, cc_boundary)) arr[ROWS, COLS] = True return arr
Example #5
Source File: mixed_len_generator.py From CSGNet with MIT License | 5 votes |
def draw_square(self, center: list, length: int): """ Draw a square :param center: center of square :param length: length of square :return: """ arr = np.zeros(self.canvas_shape, dtype=bool) length *= 1.412 # generate the row vertices rows = np.array([ int(center[0] - length / 2.0), int(center[0] + length / 2.0), int(center[0] + length / 2.0), int(center[0] - length / 2.0) ]) cols = np.array([ int(center[1] + length / 2.0), int(center[1] + length / 2.0), int(center[1] - length / 2.0), int(center[1] - length / 2.0) ]) # generate the col vertices rr_inner, cc_inner = draw.polygon(rows, cols, shape=self.canvas_shape) rr_boundary, cc_boundary = draw.polygon_perimeter( rows, cols, shape=self.canvas_shape) ROWS = np.concatenate((rr_inner, rr_boundary)) COLS = np.concatenate((cc_inner, cc_boundary)) arr[COLS, ROWS] = True return arr
Example #6
Source File: uv_map_generator.py From densebody_pytorch with GNU General Public License v3.0 | 5 votes |
def render_UV_atlas(self, image_name, size=1024): if self.vt_faces is None: print('Cyka Blyat: Load an obj file first!') faces = (self.texcoords[self.vt_faces] * size).astype(np.int32) img = np.zeros((size, size), dtype=np.uint8) for f in faces: rr, cc = pope(f[:,0], f[:,1], shape=(size, size)) img[rr, cc] = 255 imsave(image_name, img)
Example #7
Source File: visualize.py From kaggle-airbus-ship-detection-challenge with Apache License 2.0 | 5 votes |
def coord2_boarder(mean_x, mean_y, length, width, rotate, img_size, img_base=None, weight=1.0): polygon_perimeter_clip = partial(polygon_perimeter, clip=True) return coord_draw(polygon_perimeter_clip, mean_x, mean_y, length, width, rotate, img_size=img_size, img_base=img_base, weight=weight)
Example #8
Source File: image.py From choochoo with GNU General Public License v2.0 | 5 votes |
def overlay_route(image, lat, lon, rgb): x, y = latlon_to_xy(image, lat, lon) mask = np.zeros((image.height, image.width), dtype=np.float) rows, columns = polygon_perimeter(y, x, shape=mask.shape, clip=False) mask[rows, columns] = 1 mask = anti_alias(mask) return overlay(image, mask, rgb)
Example #9
Source File: imgaug.py From ViolenceDetection with Apache License 2.0 | 5 votes |
def draw_on_image(self, image, color=[0, 255, 0], alpha=1.0, thickness=1, copy=True, raise_if_out_of_image=False): # pylint: disable=locally-disabled, dangerous-default-value, line-too-long if raise_if_out_of_image and self.is_out_of_image(image): raise Exception("Cannot draw bounding box x1=%.8f, y1=%.8f, x2=%.8f, y2=%.8f on image with shape %s." % (self.x1, self.y1, self.x2, self.y2, image.shape)) result = np.copy(image) if copy else image for i in range(thickness): y = [self.y1_int-i, self.y1_int-i, self.y2_int+i, self.y2_int+i] x = [self.x1_int-i, self.x2_int+i, self.x2_int+i, self.x1_int-i] rr, cc = draw.polygon_perimeter(y, x, shape=result.shape) if alpha >= 0.99: result[rr, cc, 0] = color[0] result[rr, cc, 1] = color[1] result[rr, cc, 2] = color[2] else: if result.dtype in [np.float32, np.float64]: result[rr, cc, 0] = (1 - alpha) * result[rr, cc, 0] + alpha * color[0] result[rr, cc, 1] = (1 - alpha) * result[rr, cc, 1] + alpha * color[1] result[rr, cc, 2] = (1 - alpha) * result[rr, cc, 2] + alpha * color[2] result = np.clip(result, 0, 255) else: input_dtype = result.dtype result = result.astype(np.float32) result[rr, cc, 0] = (1 - alpha) * result[rr, cc, 0] + alpha * color[0] result[rr, cc, 1] = (1 - alpha) * result[rr, cc, 1] + alpha * color[1] result[rr, cc, 2] = (1 - alpha) * result[rr, cc, 2] + alpha * color[2] result = np.clip(result, 0, 255).astype(input_dtype) return result
Example #10
Source File: anno_helper.py From lost with MIT License | 4 votes |
def draw_annos(annos, types, img, color=(255,0,0), point_r=2): '''Draw annotations inside a image Args: annos (list): List of annotations. types (list): List of types. img (numpy.array): The image to draw annotations in. color (tuple): (R,G,B) color that is used for drawing. Note: The given image will be directly edited! Returns: numpy.array: Image with drawn annotations ''' if annos: if len(img.shape) < 3: img = gray2rgb(img) img_h, img_w, _ = img.shape for anno, t in zip(annos, types): if t == 'bbox': anno = trans_boxes_to([anno])[0] anno = to_abs([anno], [t], (img_w, img_h))[0] xmin, ymin, xmax, ymax = anno rr, cc = polygon_perimeter([ymin, ymin, ymax, ymax], [xmin, xmax, xmax, xmin ], shape=img.shape) elif t == 'polygon': anno = to_abs([anno], [t], (img_w, img_h))[0] anno = np.array(anno) rr, cc = polygon_perimeter(anno[:,1].tolist(), anno[:,0].tolist(), shape=img.shape) elif t == 'point': anno = to_abs([anno], [t], (img_w, img_h))[0] rr, cc = circle(anno[1], anno[0], point_r, shape=img.shape) elif t == 'line': anno = to_abs([anno], [t], (img_w, img_h))[0] for i, point in enumerate(anno): if i >= (len(anno)-1): break rr, cc = line(point[1], point[0], anno[i+1][1], anno[i+1][0]) img[rr,cc] = color else: raise ValueError('Unknown annotation type: {}'.format(t)) img[rr,cc] = color return img else: return []