opencv图片局部打码
时间: 2023-11-01 13:08:01 浏览: 242
好的,以下是一个简单的示例代码,可以用opencv实现图片的局部打码处理:
```python
import cv2
# 加载图片
img = cv2.imread('test.jpg')
# 指定要打码的区域,这里是以左上角点和右下角点坐标表示
x1, y1 = 100, 100
x2, y2 = 200, 200
# 获取要打码区域的大小
w = x2 - x1
h = y2 - y1
# 在图片上画一个大小为要打码区域的矩形
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 0), -1)
# 对要打码的区域进行高斯模糊处理
roi = img[y1:y2, x1:x2]
roi = cv2.GaussianBlur(roi, (23, 23), 0)
# 将处理后的区域覆盖到原图中去
img[y1:y2, x1:x2] = roi
# 展示处理后的图片
cv2.imshow('processed image', img)
cv2.waitKey()
```
在上面的代码中,我们首先加载了一张图片,然后指定了要打码的区域,接着在该区域上画了一个黑色的矩形,并对该区域进行了高斯模糊处理,最后将处理后的区域覆盖到原图中,从而实现了图片的局部打码处理。
相关问题
用python和opencv为人物图像打码
好的,我们可以使用Python中的OpenCV库来打码,具体步骤如下:
1. 使用OpenCV读取原始图片,使用cv2.imread()函数。
2. 对图片进行打码处理,可以使用OpenCV中的矩形框函数cv2.rectangle(),将需要打码的区域框起来。
3. 将打码后的图片保存,使用cv2.imwrite()函数。
下面是一个简单的代码示例:
```python
import cv2
# 读取原始图片
img = cv2.imread('person.jpg')
# 设定打码区域
x, y, w, h = 100, 100, 200, 200
# 在打码区域画矩形框
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 0, 0), -1)
# 保存打码后的图片
cv2.imwrite('person_blur.jpg', img)
```
这样就可以用Python和OpenCV为人物图像打码了。希望能对你有帮助。
Linux用c语言对图片进行打码
要用C语言对图片进行打码,你可以使用开源的图像处理库,例如OpenCV。以下是一个简单的示例代码,使用OpenCV中的函数将一个矩形覆盖在图像上实现打码的效果:
```c
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv) {
if (argc != 3) {
printf("usage: %s <input_image> <output_image>\n", argv[0]);
return -1;
}
Mat image = imread(argv[1], IMREAD_UNCHANGED);
if (image.empty()) {
printf("Cannot read image file: %s\n", argv[1]);
return -1;
}
// 打码的矩形框
Rect roi(100, 100, 200, 200);
// 在图像上打码
Mat maskedImage = image.clone();
rectangle(maskedImage, roi, Scalar(0, 0, 0), -1);
// 保存打码后的图像
imwrite(argv[2], maskedImage);
return 0;
}
```
你可以将以上代码保存为"mymask.cpp",然后使用以下命令编译运行:
```bash
g++ -o mymask mymask.cpp `pkg-config opencv --cflags --libs`
./mymask input.png output.png
```
其中,"input.png"是原始图片,"output.png"是打码后的图片。
阅读全文