Opencv get pixel python

Как мне получить доступ к пикселям изображения с помощью OpenCV-Python?

Я хочу знать, как перебрать все пиксели изображения. Я попробовал это:

import cv2 import numpy as np x = np.random.randint(0,5,(500,500)) img = cv2.imread('D:\Project\Capture1.jpg',0) p = img.shape print p rows,cols = img.shape for i in range(rows): for j in range(cols): k = x[i,j] print k 

Он печатает вертикальный набор чисел, который не имеет форму массива. Я также получаю массив за пределами исключения. Пожалуйста, предложите метод.

ОТВЕТЫ

Ответ 1

Доступ к определенному пикселю в Python

import cv2 image = cv2.imread("sample.jpg") pixel= image[200, 550] print pixel 

Ответ 2

Я не понимаю, какова цель вашей переменной x. Тебе это не нужно.

for i in range(rows): for j in range(cols): k = img[i,j] print k 

который будет печатать действительно вертикальный набор чисел. Если вы хотите изменить значения пикселей, используйте img.itemset() . http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.html

Если вы хотите распечатать весь массив, используйте print(img)

Ответ 3

Доступ с использованием индекса массива будет медленным с пустым массивом.

Вы можете использовать метод item() для доступа и itemset для внесения изменений.

for i in range(0,img.shape[0]): for j in range(0,img.shape[1]): pixel = img.item(i, j) print pixel 

Ответ 4

import numpy as np import Image image = Image.open("example.png") image_data = np.asarray(image) for i in range(len(image_data)): for j in range(len(image_data[0])): print(image_data[i][j]) # this row prints an array of RGB color for each pixel in the image 

Ответ 5

 import cv2 import numpy as np image = cv2.imread('C:/Users/Asus/Desktop/test.jpg', cv2.IMREAD_COLOR) for x in range (1,480): for y in range (1,640): pixel = image[x,y] print pixel 

Ответ 6

 for (int y = 0; y(Point(x, y)); //you can print color this has the pixel value > > 

Ответ 7

Вертикальный массив — это значения канала RGB (Reg, Green, Blue) для изображения. Если вам нужно одно значение для пикселя, вы можете сначала преобразовать изображение в оттенки серого. Это действительно зависит от вашего приложения и того, что вы хотите сделать с изображением, преобразование в оттенки серого — это всего лишь один подход.

Чтобы преобразовать в оттенки серого

grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 

Некоторые основные операции показаны в документации

Ответ 8

вы читаете изображение в шкале серого

img = cv2.imread(‘D:\Project\Capture1.jpg’, 0)

здесь вы получите только intencity

Ответ 9

Этот код даст вам значения пикселей в массиве ‘k’, пройдя цикл.

import cv2 import numpy as np img = cv2.imread('sample.jpg',0) rows,cols = img.shape k = [] for i in range(rows): for j in range(cols): k.append(img[i,j]) print k 

Ответ 10

import cv2 import numpy as np imagename = "capure.jpg" img = cv2.imread(imagename, 0) # 0 params, for gray image height, width = img.shape[:2] # image height and width print(img) # all image pixels value in array print(img[10, 10]) # one pixel value in 10,10 coordinate for y in range(height): for x in range(width): print(img[x], img[y], end = "\t") 

Источник

How to access and modify pixel value in an image using OpenCV Python?

We will use this image as the Input File in the following example.

Example

In this Python program, we access the pixel value at a point in the input image. We also find the pixel value for three different color channels and modify the pixel value at that point for the red color channel.

# program to access and modify a pixel value # import required libraries import cv2 # read the input image img = cv2.imread('horizon.jpg') # access pixel values using indexing print("pixel value at [200,150]:", img[200,150]) print("pixel value blue channel at [200,150]:", img[200,150][0]) print("pixel value green channel at [200,150]:", img[200,150][1]) print("pixel value red channel at[200,150]:", img[200,150][2]) # modify the pixel value at [200,150] for red color channel img[200,150] = (0, 0, 255) print("after modifying pixel value at [200,150]:", img[200,150])

Output

When you run the above program, it will produce the following output −

pixel value at [200,150]: [115 192 254] pixel value blue channel at [200,150]: 115 pixel value green channel at [200,150]: 192 pixel value red channel at [200,150]: 254 after modifying pixel value at [200,150]: [ 0 0 255]

Example

In this Python program, we access the pixel values of a region in the input image. We also modify these pixel values to red color.

# program to access and modify the pixel values of a region # import required libraries import cv2 # read the input image img = cv2.imread('horizon.jpg') # access pixel values using indexing and slicing # modify pixel color of a region to red color img[100:300,150:350] = (0, 0, 255) # display the modified image cv2.imshow('Modified Image', img) cv2.waitKey(0) cv2.destroyAllWindows()

Output

When you run the above program, it will produce the following output −

Notice the output image after modifying the pixel values to red color.

Источник

Читайте также:  Java stream api list to list
Оцените статью